1、shell脚本中的字符串比较

  1. string1 = string2 如果两个字符串相同,结果就为真
  2. string1 != string2 如果两个字符串不同,结果就为真
  3. -n string 如果字符串不为空,则结果为真
  4. -z string 如果字符串为一个空串(null),则结果为真

2、shell脚本中的算数比较

expression1 -eq expression2     如果两个表达式相等,则结果为真
expression1 -ne expression2     如果两个表达式不等,则结果为真
expression1 -gt expression2     如果expression1大于expression2,则为真
expression1 -ge expression2     如果expression1大于等于expression2,则为真
expression1 -lt expression2     如果expression1小于expression2,则为真
expression1 -le expression2     如果expression1小于等于expression2,则为真
!expression                     表达式为假,则结果就为真;反之亦然

3、shell脚本中的文件条件测试

-d file     如果文件是一个目录,则为真
-f file     如果文件是一个普通文件,则为真;也可以用来测试文件是否存在
-r file     如果文件可读,则结果为真
-s file     如果文件大小不为0,则结果为真
-w file     如果文件可写,则结果为真
-x file     如果文件可执行,则结果为真

4、自定义错误输出,exit

退出码(exit status,或exit code)的约定:
0表示成功(Zero - Success)
非0表示失败(Non-Zero  - Failure)
2表示用法不当(Incorrect Usage)
127表示命令没有找到(Command Not Found)
126表示不是可执行的(Not an executable)
>=128 信号产生
格式:exit n
退出。设置退出码为n。
格式:$?
上一个命令的退出码。

5、控制语句

5.1 if语句

结构如下:
if condition
then
    statements
else
    statements
fi
elif语句
结构如下
if condition;then
    statements
elif condition;then
    statements
else
    statements
fi
1、判断文件是否存在
2、判断字符串是否为空
3、判断字符串是否相等

image.png

5.2 for语句

结构如下:
for variable in values
do
    statements
done

5.3 while语句

结构如下:
while condition
do
    statements
done
while read line 
do
statements
done  < test.txt
1、读取文件中的配置

5.4 case语句

结构如下:
case variable in
    pattern [ | pattern] ...)
     statements
;;
    pattern [ | pattern] ...) 
statements
;;
    ...
esac
case variable in 
test1)
command
;;
test2)
command
;;
*)
command
esac

image.png

image.png

image.png

5.5 查看Linux脚本执行过程

bash -x