Shell脚本编程入门(1)条件判断
2016-07-14 11:14
591 查看
条件判断
条件测试的表达式:
[ expression ] #注意expression的两边一定要有一个空格,否则会报语法错误。
[[ expression ]] #注意expression的两边一定要有一个空格,否则会报告语法错误。
test expression
命令的间逻辑关系:
逻辑与: && 或者-a
第一个条件为假时,第二条件不用再判断,最终结果已经有;
第一个条件为真时,第二条件必须得判断;
逻辑或: || 或者-o
例如:
如果用户user6不存在,就添加用户user6
! id user6 && useradd user6
id user6 || useradd user6
控制语句的结构
单分支if语句
if 判断条件; then
statement1
statement2
...
fi
双分支的if语句:
if 判断条件; then
statement1
statement2
...
else
statement3
statement4
...
fi
多分支的if语句:
if 判断条件1; then
statement1
...
elif 判断条件2; then
statement2
...
elif 判断条件3; then
statement3
...
else
statement4
...
fi
条件判断的类型分为三种
整数测试
-eq: 测试两个整数是否相等;比如 $A -eq $B
-ne: 测试两个整数是否不等;不等,为真;相等,为假;
-gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;
-lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;
-ge: 大于或等于
-le:小于或等于
一个例子:
INT1=63
INT2=77
[ $INT1 -eq $INI2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2
文件测试:
-e FILE:测试文件是否存在
-f FILE: 测试文件是否为普通文件
-d FILE: 测试指定路径是否为目录
-r FILE: 测试当前用户对指定文件是否有读取权限;
-w ...写权限
-x ...执行权限
一个例子
[ -e /etc/inittab ]
[ -x /etc/rc.d/rc.sysinit ]
字符测试
字符测试:
==:测试是否相等,相等为真,不等为假
注意:等号的两边必须有空格!!!!否则会报语法错误
!=: 测试是否不等,不等为真,等为假
>
<
-n string: 测试指定字符串是否为空,空则真,不空则假
-z string: 测试指定字符串是否不空,不空为真,空则为假
本文出自 “厚积薄发” 博客,请务必保留此出处http://joedlut.blog.51cto.com/6570198/1826298
条件测试的表达式:
[ expression ] #注意expression的两边一定要有一个空格,否则会报语法错误。
[[ expression ]] #注意expression的两边一定要有一个空格,否则会报告语法错误。
test expression
命令的间逻辑关系:
逻辑与: && 或者-a
第一个条件为假时,第二条件不用再判断,最终结果已经有;
第一个条件为真时,第二条件必须得判断;
逻辑或: || 或者-o
例如:
如果用户user6不存在,就添加用户user6
! id user6 && useradd user6
id user6 || useradd user6
控制语句的结构
单分支if语句
if 判断条件; then
statement1
statement2
...
fi
双分支的if语句:
if 判断条件; then
statement1
statement2
...
else
statement3
statement4
...
fi
多分支的if语句:
if 判断条件1; then
statement1
...
elif 判断条件2; then
statement2
...
elif 判断条件3; then
statement3
...
else
statement4
...
fi
条件判断的类型分为三种
整数测试
-eq: 测试两个整数是否相等;比如 $A -eq $B
-ne: 测试两个整数是否不等;不等,为真;相等,为假;
-gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;
-lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;
-ge: 大于或等于
-le:小于或等于
一个例子:
INT1=63
INT2=77
[ $INT1 -eq $INI2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2
文件测试:
-e FILE:测试文件是否存在
-f FILE: 测试文件是否为普通文件
-d FILE: 测试指定路径是否为目录
-r FILE: 测试当前用户对指定文件是否有读取权限;
-w ...写权限
-x ...执行权限
一个例子
[ -e /etc/inittab ]
[ -x /etc/rc.d/rc.sysinit ]
字符测试
字符测试:
==:测试是否相等,相等为真,不等为假
注意:等号的两边必须有空格!!!!否则会报语法错误
!=: 测试是否不等,不等为真,等为假
>
<
-n string: 测试指定字符串是否为空,空则真,不空则假
-z string: 测试指定字符串是否不空,不空为真,空则为假
本文出自 “厚积薄发” 博客,请务必保留此出处http://joedlut.blog.51cto.com/6570198/1826298
相关文章推荐
- Shell入门教程:Shell变量
- Shell入门教程:Shell的基本结构
- Shell入门教程:Shell函数的返回值
- Shell入门教程:Shell函数详解
- Shell入门教程:Shell当中的特殊变量
- bash shell:获取当前脚本的绝对路径(pwd/readlink)
- shell学习-4
- bash 中的 ${ # % : / } 使用
- shell学习-3
- 非常好!!!---bash转义序列笔记---打印语句printf用法【转】
- 如何在MakeFile中执行shell脚本文
- FileZilla无法确定拖放操作的目标,由于shell未正确安装
- HBase Shell输入命令无法删除问题的解决技巧
- 从汇编代码提取Shellcode的简单实现
- 简单shellcode
- ShellExecute与ShellExecuteEx的用法
- python与shell通过微信企业号发送消息
- dedecms xss 0day通杀所有版本 可getshell
- #!/bin/sh & #!/bin/bash区别
- linux shell脚本通过参数名传递参数值