数值运算:
1.给变量a,b赋值 [root@localhost ~]# a=11
[root@localhost ~]# b=22
a与b相加: [root@localhost ~]# d=$(expr $a + $b)
注意:“ + ”号左右两侧必须有空格
2.表达式求值:
$ expr 1 + 3
$ expr 2 – 1
$ expr 1 * 3 使用*要加转义符
$ echo expr 1 + 3
注意:表达式中,数字和运算符指教要有空格,出现在语句中要加反引号
3.“
(
(
运
算
式
)
)
”
或
“
((运算式))”或“
((运算式))”或“[运算式]”
[root@localhost ~]# a=11
[root@localhost ~]# b=22
[root@localhost ~]# g=$[ $a + KaTeX parse error: Expected 'EOF', got '#' at position 28: …ot@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 [ KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲ -gt 1 ] …#” 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键作为分隔。
如果输入的数据个数不够,则从左到右对应赋值,没有输入的变量为空;
如果输入的数据个数超了,则从左到右对应赋值,最后一个变量被赋予剩余的所 有数据。
Linux系统Shell脚本语法
最新推荐文章于 2023-03-31 19:07:22 发布