Bash脚本条件测试的几种方式
2014-06-30 17:18
393 查看
Bash脚本条件测试的几种方式:
1)cmd #执行命令成功与否,根据命令的退出状态来判断,$?变量值的含义0成功,1-255失败,可以使用exit #命令退出脚本,并指定脚本退出状态为#,若为在脚本中使用exit,则脚本的退出状态为脚本中最后一条执行完成的命令的退出状态。
2)[expression]
3)`expression`
4)test expression
If语句语法格式
1) 单分支
If condition;thenCmd1Cmd2Fi2)双分支
If condition;thenCmd1elseCmd2Fi3)多分支
If condition;thenCmd1ElifCmd2ElseCmd3Fi 整数测试表达式:数值1 比较符号 数值2
比较符号: -gt大于-ge大于等于-eq等于
-ne不等于-lt小于-le小于等于
字符测试表达式:字符1 比较符号 字符2
比较符号: > 大于 < 小于 == 等于 != 不等于
单目操作符:-z $string:为空则为真,不空则为假
–n $string:为空则为假,不空则为真模式匹配表达式:=~ 一般用于双中括号中,pattern模式可以采用正则表达式。=~操作符两侧需要加上空格
格式[[ $string =~ pattern ]]
文件测试表达式:操作符 文件/目录
操作符:
-f 是否为普通文件
-d 是否为目录文件
-e 是否为已存在文件
-r 是否为可读文件
-w 是否为可写文件
-x 是否为可执行文件
-s 是否不为空,不空为真
-l 是否为符号链接
Bash位置参数
$1,$2…..${10}…
$@:所有位置参数每个位置参数当成一个独立的参数
$*::所有位置参数当成一个独立的参数。
$#:位置参数的个数
Shift命令:shift
左移位置参数列表,n为左移的位置变量的个数。
小技巧:
*脚本中命令的无关输出应该让它重定向到/dev/null cmd &> /dev/null
*把你想要的脚本退出状态保存在一个变量中,然后最后脚本用exit命令以此变量值退出脚本。
Bash中的组合条件测试,完成条件之间的逻辑关系(逻辑{与、或、非})
*这些操作都是短路的,第一段表达式算好,有了结果的话,第二段表达式就不运算了。
*&&的运算优先级要高于||;例:id user1&& echo “user1 exist” ||useradd user1
逻辑与
&& | -a
逻辑或
|| | -o
逻辑非
!:为单目操作符,可用于测试bash命令的退出状态,以及可用于[][[]]测试结构中
注:&&和||可以用在命令行上完成命令间的逻辑关系,而-a -o只能用于[][[]]中
1)cmd #执行命令成功与否,根据命令的退出状态来判断,$?变量值的含义0成功,1-255失败,可以使用exit #命令退出脚本,并指定脚本退出状态为#,若为在脚本中使用exit,则脚本的退出状态为脚本中最后一条执行完成的命令的退出状态。
2)[expression]
3)`expression`
4)test expression
If语句语法格式
1) 单分支
If condition;thenCmd1Cmd2Fi2)双分支
If condition;thenCmd1elseCmd2Fi3)多分支
If condition;thenCmd1ElifCmd2ElseCmd3Fi 整数测试表达式:数值1 比较符号 数值2
比较符号: -gt大于-ge大于等于-eq等于
-ne不等于-lt小于-le小于等于
字符测试表达式:字符1 比较符号 字符2
比较符号: > 大于 < 小于 == 等于 != 不等于
单目操作符:-z $string:为空则为真,不空则为假
–n $string:为空则为假,不空则为真模式匹配表达式:=~ 一般用于双中括号中,pattern模式可以采用正则表达式。=~操作符两侧需要加上空格
格式[[ $string =~ pattern ]]
文件测试表达式:操作符 文件/目录
操作符:
-f 是否为普通文件
-d 是否为目录文件
-e 是否为已存在文件
-r 是否为可读文件
-w 是否为可写文件
-x 是否为可执行文件
-s 是否不为空,不空为真
-l 是否为符号链接
Bash位置参数
$1,$2…..${10}…
$@:所有位置参数每个位置参数当成一个独立的参数
$*::所有位置参数当成一个独立的参数。
$#:位置参数的个数
Shift命令:shift
左移位置参数列表,n为左移的位置变量的个数。
小技巧:
*脚本中命令的无关输出应该让它重定向到/dev/null cmd &> /dev/null
*把你想要的脚本退出状态保存在一个变量中,然后最后脚本用exit命令以此变量值退出脚本。
Bash中的组合条件测试,完成条件之间的逻辑关系(逻辑{与、或、非})
*这些操作都是短路的,第一段表达式算好,有了结果的话,第二段表达式就不运算了。
*&&的运算优先级要高于||;例:id user1&& echo “user1 exist” ||useradd user1
逻辑与
&& | -a
逻辑或
|| | -o
逻辑非
!:为单目操作符,可用于测试bash命令的退出状态,以及可用于[][[]]测试结构中
注:&&和||可以用在命令行上完成命令间的逻辑关系,而-a -o只能用于[][[]]中
相关文章推荐
- bash脚本编程之条件判断及测试
- bash脚本:条件测试及算术运算
- Linux01-bash脚本编程之六使用脚本选项及组合条件测试23
- bash脚本基础入门之条件测试
- bash脚本条件测试总结
- #7 shell脚本编程之bash运算和条件测试命令
- 第七课-第二讲 07_02_bash脚本编程之六 使用脚本选项及组合条件测试
- Hibernate的条件查询的几种方式
- Hibernate的条件查询的几种方式
- 自动化测试脚本开发的几种策略
- Python:脚本的几种执行方式
- shll脚本的条件测试
- Selenium的RC方式编写的测试脚本部分迁移到WebDriver方式混用的简单示例
- 说说 Windows 脚本宿主运行的几种方式
- 直接赋值,Reflection、Delegate、Expression,Emit 等几种方式生成实体类测试,3.18更新。
- Shell脚本语法 条件测试:test
- bash脚本性能测试之:代码段执行时间
- 调用bash shell脚本的方式
- Linux新手生存笔记[9]——shell脚本基础2-条件测试及控制流
- Shell脚本有几种运行方式,如何使用?