Shell脚本基本概念
一组命令的集合
把脚本文件提交给Bash解释执行
支持以编程的方式编写命令
支持自动化运维
指定命令解释器
脚本第一行以符号“#!”开头,通常称为sh-bang或she-bang
shell脚本的第一行开头如下:
#!/bin/bash
执行bash shell脚本
脚本的执行方式
第1种方式
设置脚本文件的可执行权限 (chmod a+x myscript.sh)
指定脚本文件的绝对路径或相对路径直接执行 (myscript.sh)
第2种方式
使用sh或bash命令执行脚本文件,把文件名作为sh或bash命令的参数
sh其实是bash的链接文件
不管脚本文件有没有可执行权限,都可以采用这种方式执行
sh demo.sh // 相当于 bash demo.sh
循环结构使用
bash的for循环结构使用语法:
for variable in list; do
command variable
done
脚本中使用退出代码
退出代码是进程完成返回的代码,0值代表没有错误;退出代码存储在?中,可以使用$?进行访问。
使用test命令测试退出代码:
test 1 -gt 0;echo $?
#返回结果0
test 0 -gt 1;echo $?
#返回1
运算符
运算符表达式 | 含义 |
m -eq n | m、n相等返回真,否则为假 |
m -ne n | m、n不相等返回真,否则为假 |
m -gt n | m大于n返回真,否则为假 |
m -lt n | m小于n返回真,否则为假 |
m -ge n | m大于等于n返回真,否则为假 |
m -le n | m小于等于n返回真,否则为假 |
-z str | str为空返回真,否则为假 |
-n str | str不为空返回真,否则为假 |
条件结构
if/then结构
if <condition>; then
<statement>
......
<statement>
fi
if/then/else结构
if <condition>; then
<statement>
.........
<statement>
else
<statement>
.........
<statement>
fi
if/then/elif/then/else结构
if <condition>; then
<statement>
......
<statement>
elif <condition>; then
<statement>
..........
<statement>
else
<statement>
.........
<statement>
fi