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脚本基础/
版权声明: 转载请注明出处.