登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 898|回复: 0

linux shell脚本编程各种语法汇总

[复制链接]

 成长值: 35920

8169

主题

7094

帖子

6831

现金

黑狼创办人

Rank: 12Rank: 12Rank: 12

积分
6831
发表于 2017-10-20 08:07:24 | 显示全部楼层 |阅读模式 来自 美国
之所以发表这样一篇文章,是因为本人在学完ruby之后,发现再用shell进行脚本编程时,各种混淆。其实,这个东西跟当年学vim时一样,不用特殊去记忆,用到了再看,你写多了就记住了。为了便于查询,将主要的语法总结如下。这部分内容我在《每日Linux》系列视频中都讲到了,要想看视频演示的请翻看之前的视频。
变量部分

变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。
定义变量的时候不需要$,使用变量的时候才加美元符$
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。
单引号
str='this is a string'
单引号字符串的限制:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
双引号
your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"
echo -e的作用是打出 \n \t等字符
双引号的优点:
双引号里可以有变量
双引号里可以出现转义字符
用户交互read -p提示信息
数值计算两种方法

  • declare -i a=1+2
  • $((1+2))
test [] 和 [\s 待判断内容\s] 进行布尔判断

-e 判断文件是否存在 -f 是否为普通文件 -d 是否为目录
-r 是否有读权限 -w 是否有写权限 -x是否可执行
-s 文件是否为非空
-eq 相等 -ne 不相等 -gt 大于 -lt 小于 -ge小于等于 -le 小于等于
= 字符串相等 != 字符串不等 注意 = 和 != 两边要有空格
-a and -o or ! not
循环结构

while
do
code here
done
第二种循环
for((\s ; ; \s))
do
done
括号内是c语言语法,不能使用i++
条件判断结构

if [ ] ; then
code here
elif [ ]; then
code here
else
code here
fi
util [ ]
do
code here
done
条件出现 循环终止
传参情况 $0函数名 $1第一个参数 $2第二个参数

定义函数

function 函数名 (){
函数体
}
调用函数:函数名 参数
case语句

case 变量 in
值)
程序块
;;
值)
程序块
;;
*)
程序块
;;
esac
shell调试


  • -n 检查语法不执行
  • -v 执行前打印脚本内容
  • -x 显示执行全部过程




上一篇:shell常用命令
下一篇:shell命令一行代码搞定
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-14 21:42 , Processed in 0.052284 second(s), 44 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表