设为首页 收藏本站
查看: 1618|回复: 5

[经验分享] 条件判断、if 语句

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-11-5 09:15:57 | 显示全部楼层 |阅读模式

Bash中条件测试类型:

整数测试

文件测试

字符测试

条件测试的表达式:

[ expreesion ]

[[ expreesion ]]

test expreesion

整数测试:

-eq: 测试两个整数是否相等;比如 $A -eq $B


-ne: 测试两个整数是否不等;不等,为真;相等,为假;


-gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;


-lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;


-ge: 大于或等于


-le: 小于或等于

文件测试:

-e FILE:测试文件是否存在


-f FILE: 测试文件是否为普通文件


-d FILE: 测试指定路径是否为目录


-r FILE: 测试当前用户对指定文件是否有读取权限


-w FILE: 测试当前用户对指定文件是否有写权限


-x FILE: 测试当前用户对指定文件是否有执行权限

-s FILE: 测试当前文件是否不空,不空为真,空则假

字符测试:

==:测试是否相等,相等为真,不等为假


!=: 测试是否不等,不等为真,等为假


=~: 判断左边的字符串是否能够被右边的模式所匹配;通常用于[[]];


>: 大于


<: 小于


-n string: 测试指定字符串是否为空,空则真,不空则假


-z string: 测试指定字符串是否不空,不空为真,空则为假


命令的间逻辑关系:

逻辑与: &&

第一个条件为假时,第二条件不用再判断,最终结果已经有;

第一个条件为真时,第二条件必须得判断;

逻辑或: ||

第一个条件为真时,第二条件不用再判断,最终结果已经有;

第一个条件为假时,第二条件必须得判断;

逻辑非:!

简单示例

如果用户存在,就显示用户已存在;否则,就添加此用户

[iyunv@localhost ~]# id user1 && echo "user1" || useradd user1


如果用户不存在,就添加;否则,显示其已经存在

[iyunv@localhost ~]# ! id user1 && useradd user1 || echo "user1 exists"


如果/etc/inittab文件的行数大于100,就显示好大的文件

[iyunv@localhost ~]# [ `wc -l /etc/inittab | cut -d' ' -f1` -gt 100 ] && echo "large file"


if条件判断,控制结构

单分支if语句

if 判断条件; then(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


示例:


如果用户存在,就显示用户已存在;否则,就添加此用户

#!/bin/bash

if id user1 &>/dev/null ;then

echo "user1 exists"

else

useradd user1

fi


给定一个用户,如果其UID为0,就显示此为管理员;否则,就显示其为普通用户

#!/bin/bash

USERNAME=root

USERID=`id -u $USERNAME`

if [ $USERID -eq 0 ];then

echo "$USERNAME is admin"

else

echo "$USERNAME is a common user"

fi


给定一个文件:如果是一个普通文件,就显示之;如果是一个目录,亦显示之;否则,此为无法识别之文件;

#!/bin/bash

FILENAME=/etc/passwd

if [ -f $FILENAME ];then

echo "$FILENAME"

elif [ -d $FILENAME ];then

echo "$FILENAME"

else

echo "wu fa shi bie gai wen jian"

fi


传递一个参数(单字符就行)给脚本,如参数为q、Q、quit或Quit,就退出脚本;否则,就显示用户的参数

#!/bin/bash

if [ $1 == q ];then

echo "Quiting..."

exit 1

elif [ $1 == Q ];then

echo "Quiting..."

exit 2

elif [ $1 == quit ];then

echo "Quiting..."

exit 3

elif [ $1 == Quit ];then

echo "Quiting..."

exit 4

else

echo "$1"

fi




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-10265-1-1.html 上篇帖子: F5 设备监控脚本 下篇帖子: 按照日期批量建立目录且修改mtime时间

尚未签到

发表于 2013-11-24 10:54:27 | 显示全部楼层
找到好贴不容易,我顶你了,谢了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-4 12:04:56 | 显示全部楼层
歹毒的生活把我们变成了这样,受过高等教育的流氓

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-15 21:41:42 | 显示全部楼层
歹毒的生活把我们变成了这样,受过高等教育的流氓

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-22 13:12:55 | 显示全部楼层
曾经说爱我一生不变,如今再见那份温柔对她重现。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-29 00:06:32 | 显示全部楼层
伤感个性签名:别相信用任何谎言接近你的陌生人即使他是善意

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表