站长资讯网
最全最丰富的资讯网站

Shell脚本语法解析

数值运算:
1.给变量a,b赋值 [root@localhost ~]# a=11
[root@localhost ~]# b=22
a与b相加: [root@localhost ~]# d=(expr" role="presentation">

(expr

a + $b)
注意:“ + ”号左右两侧必须有空格
2.表达式求值:
expr1+3" role="presentation">

expr1+3

expr 2 – 1
expr13使" role="presentation">

expr13使

echo expr 1 + 3
注意:表达式中,数字和运算符指教要有空格,出现在语句中要加反引号
3.“(())" role="presentation">

(())

[运算式]”
[root@localhost ~]# a=11
[root@localhost ~]# b=22
[root@localhost ~]# g=[" role="presentation">

[

a + b ]     4.[root@localhost ~]# a=" role="presentation">b]
4.[root@localhost~]#a=

b]4.[root@localhost~]#a=

(( (11+3)*3/2 ))
虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级
5.[root@localhost ~]# b=$(( 14%3 ))
14 不能被 3 整除,余数是 2
变量表达式:
1. 条件判断命令test:test n1 -参数 n2(或 –参数 表达式) 真返回0,假返回1。
test语句的等价形式[ 1 –lt 4 ]
可用中括号代替test,把表达式括起来实现判断
注意表达式与中括号间有空格
1.1. 整数,比较运算符 -lt 小于 -le 小于等于 -gt 大于
-ge 大于等于 -eq 等于 -ne 不等于
1.2. 文件测试 -f 存在且是普通文件 -d 存在且是目录
-s 存在且字节数大于0 -r 存在且可读
-w 存在且可写 -x 存在且可执行
如:test -d “mydoc” 判断mydoc是否是目录
2. 字符串测试 : test s 字符串s非空
test s1 = s2 字符串s1等于s2 test s1 != s2 字符串s1不等于s2
test -z s字符串长=0,即为空串 test -n 字符串长>0
3. 其他参数
-a 逻辑与 -o逻辑或 ! 逻辑非
控制流程:
1. 分支结构
1.1. if分支
if [ # -eq 0 ]                         then                            echo “输入了0个参数”                     elif [" role="presentation">#-eq0]
then
echo“输入了0个参数”
elif[

#-eq0]thenecho“输入了0个参数”elif[

# -gt 1 ]
then
echo “输入了多个参数”
else
echo “输入了1个参数”
fi
1.2. case
case “$#” in
0) echo “输入了0个参数” ;;
1) echo “输入了1个参数” ;;
*) echo “输入了多个参数”;;
esac
每个分支条件后必须以两个分号结尾
2. 循环结构
for 例子——输出100内10的倍数
for i in seq 1 9
do
echo expr $i * 10
done
乘号前加转义符,与数字间要有空格
#for i in {1..9} #大括号中不能有变量
3. read 变量1 [变量2 …]
键盘上读取多个变量的值,或输入数据时,以空格或者Tab键作为分隔。
如果输入的数据个数不够,则从左到右对应赋值,没有输入的变量为空;
如果输入的数据个数超了,则从左到右对应赋值,最后一个变量被赋予剩余的所 有数据。

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号