执行方式 脚本文件路径:./文件名称 ./Example.sh (需要对shell文件增加权限 chmod u+x Example.sh) sh 脚本文件路径: sh Example.sh source 脚本文件路径:source Example.sh
带参数执行 Shell预定义变量
变量名
定义
S0
当前执行Shell脚本的程序名
S1-9,S{10},S{11}….
参数的位置变量
S#
一共有多少个参数
S*
所有位置变量的值
S?
判断上一条命令是否执行成功,0为成功,非0为失败
#Example.sh
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别为$*"
echo "第一个参数为$1,第5个为$5"#result -- sh Example.sh one two three fource five six
当前脚本名称为Example.sh
总共有6个参数,分别为onetwothreefourfivesix
第一个参数为one,第5个为five
判断用户的参数——测试语句 文件测试:[ 操作符 文件或目录名 ] (中括号内首尾位置要有空格)
操作符
作用
-d
测试是否为目录
-e
测试文件或目录是否存在
f
判断是否为文件
r
测试当前用户是否有权限读取
w
测试当前用户是否有权限写入
-x
测试当前用户是否有权限执行
逻辑测试:[ 表达式1 操作符 表达式2 ]
操作符
作用
&&
逻辑与,而且
||
逻辑或,或者
!
逻辑否
整数值比较:[ 整数1 操作符 整数2 ]
操作符
作用
-eq
判断是否等于
-ne
判断是否不等于
-gt
判断是否大于
lt
判断是否小于
le
判断是否等于或小于
-ge
判断是否大于或等于
字符串比较 :[ 字符串1 操作符 字符串2 ]
操作符
作用
=
比较字符串内容是否相同
!=
比较字符串内容是否不同
-z
判断字符串内容是否为空
2. 条件测试语句
单分支结构 if —>条件成立 ——> then 命令序列 ——> fi if—>条件不成立——>fi
双分支结构 if 条件测试操作 then 命令序列1 else 命令序列2 fi
多分支结构 if 条件测试操作1 then 命令序列1 elif 条件测试操作2 then 条件序列2 else 命令序列3 fi
read 命令用于将用户的输入参数赋值给指定变量,read -p [ 提示语句 ] 变量名
for条件语句 for 变量名 in 取值列表 命令序列 done
while条件语句 while 条件测试操作 do 命令序列 done
case条件语句 case 变量值 in 模式1) 命令序列1 模式2) 命令序列2 *) 默认命令序列 esac