Shell脚本基础
一、变量
1 | # 使用变量,建议方式 |
1.1 字符串变量
1 | # 字符串的定义 |
1.2 变量赋值
1 | # 除了显式赋值,也可以将命令的结果存入到变量,如下就是将`ls /etc`的结果存到到了file_array |
1.3 数组变量
1 | # 数组的定义 |
二、运算符
2.1 算数运算符
+、-、*、/,%
借助expr
进行计算,例如expr $var1 + $var2
=
赋值==
数字比较相等返回true,[ $var1 == $var2 ]
!=
数字比较不相等返回true,[ $var1 != $var2 ]
2.2 关系运算符
关系运算符只用于比较数字之间的关系,不支持字符串,除非字符串的值是数字
eq
数字相等返回true,[ $var1 -eq $var2 ]
=>==
ne
数字不相等返回true,[ $var1 -nq $var2 ]
=>!=
gt
左边大于右边返回true,[ $var1 -gt $var2 ]
=>>
lt
左边小于右边返回true,[ $var1 -lt $var2 ]
=><
ge
左边大于等于右边返回true,[ $var1 -ge $var2 ]
=>>=
le
左边小于等于右边返回true,[ $var1 -le $var2 ]
=><=
2.3 布尔运算符
设var1=10,var2=20
!
非运算,表达式为false,返回true,[ ! false ]
返回trueo
或运算,有一个表达式为true就为true,[ $var1 -lt 20 -o $var1 -gt 100 ]
返回truea
与运算,所有表达式为true才是true,[ $var1 -lt 20 -a $var1 -gt 100 ]
返回false
2.4 逻辑运算符
- && :逻辑的AND
- || :逻辑的OR
1 | # 注意需要两个嵌套的中括号 |
2.5 字符串运算符
设var1="abc",var2="efg"
=
检测字符串相等返回true,[ $var1 = $var2 ]
返回false!=
检测字符串不相等返回true,[ $var1 != $var2 ]
返回truez
检测字符串长度为0返回true,[ -z $var1 ]
返回falsen
检测字符串长度不为0返回true,[ -n $var1 ]
返回true$
检测字符串不为空返回true,[ $var1 ]
返回true
1 | ########## 字符串为空和字符串长度的运算测试 ########## |
2.6 文件测试运算符
使用方法:
operator
e
文件是否存在r
文件可读检测w
文件可写检测x
文件可执行检测d
目录检测f
普通文件检测(既不是目录,也不是设备文件)b
块设备检测c
字符设备检测p
有名管道检测s
文件大小是否为0S
文件是否是socket连接L
文件是否存在并且是一个符号链接g
文件SGID位检测u
文件SUID位检测k
文件粘滞位(Sticky Bit)检测
三、参考文章
【1】Shell 教程
原文链接: https://www.delta1037.cn/2020/Linux/Shell脚本基础/
版权声明: 转载请注明出处.