shell脚本基础知识梳理<三>:条件测试与比较、流程控制 if
admin
2023-03-12 15:42:22
0

一、条件测试与比较
1、test 测试表达式 常用
test -f file && echo true||echo false
2、[ 测试表达式 ] 特别常用
[ -f file ]&& echo true||echo false
3、[[ 测试表达式 ]]
二、流程控制

1、流控制语句 if
实例1
#!/bin/bash
#获取uid=0(root)中的0;
id=id | awk -F '[=(]' '{print $2}'
echo "your user id is:$id"
if [ $id -eq 0 ]
then
echo "root"
else
echo "not root"
fi
实例2:判断登录的用户
#!/bin/bash
#$#是添加到shell 参数个数
if [ $# -eq 1 ] #或 [[ $#==1 ]] 或 (($#==1))
then
if who|grep $1 >/dev/null
then
echo $1 is active.
else
echo $1 is not active.
fi
else
echo "Usage: $0 "
exit 1
fi
~
执行后的结果
[root@localhost shell]# sh if-if.sh root
root is active.
[root@localhost shell]# sh if-if.sh zabbix
zabbix is not active.
[root@localhost shell]# sh if-if.sh
Usage: if-if.sh
[root@localhost shell]#
实例3 if-elif..else-fi
#!/bin/bash
##if-elif..else-fi
read -p "how lod are you? " age
#使用shell算数运算符(())进行条件测试
if ((age<0||age>120));then #[[ age < 0 || age > 120 ]]
echo "out of range !"
exit 1
fi
if ((age>=0&&age<13));then
echo "child!"
elif ((age>=13&&age<20));then
echo "callan!"
elif ((age>=20&&age<30));then
echo "P iii"
elif ((age>=30&&age<40));then
echo "P IV I"
else
echo "Sorry I asked."
fi
实例4
#!/bin/bash
##if 语句可以嵌套使用
file=$1
[ $# -ne 1 ] && echo "Usage: $0 " && exit 1
#错误的写法 [ $# -ne 1 ] && echo "Usage: $0 " ; exit 1 这样";" 不管前面的判断是否正确都会执

if [ -d $file ]
then
echo "$file is a directory"
elif [ -f $file ]
then
if [ -r $file -a -w $file -a -x $file ];then
echo "you have (rwx) permissioon on $file."
else
echo "$file is file."
fi
else
echo "$fles is neither a file nor a directory."
fi
执行结果
[root@localhost shell]# vim if-elif-if-else.sh
[root@localhost shell]# sh if-elif-if-else.sh liu
you have (rwx) permissioon on liu.
[root@localhost shell]# sh if-elif-if-else.sh liub
liub is a directory
[root@localhost shell]# touch qq
[root@localhost shell]# sh if-elif-if-else.sh qq
qq is file.
[root@localhost shell]#

相关内容

热门资讯

官方回应博主浦东机场打车遭抛客 7月25日,知名博主“花式足球克里斯”世界杯观赛后回国,在浦东机场打车,遭遇出租车司机谎称车辆故障中...
女孩正颌手术被做反,主导医生称... 近日,武汉。24岁女孩小雨仅2毫米轻微地包天,本可正畸改善,却被建议做正颌手术,原定下颌后移2毫米,...
台风“红霞”逼近,揭阳全力筑牢... 7月25日9时,省防汛防旱防风总指挥部将防风Ⅲ级应急响应提升为防风Ⅱ级应急响应。台风“红霞”正以25...
原创 王... 王虹夺得数学界的诺贝尔奖——菲尔兹奖。她的导师、母校、同学等等,都成为了全网讨论的对象。 而她的导师...
电池技术对二手车残值影响大吗? 随着新能源汽车市场的迅猛扩张,潜在购车者在关注新车性能的同时,也越来越重视后续流通环节的价值表现。其...
韩国一监狱百发子弹下落不明,已... 【环球网报道 记者 姜蔼玲】据韩联社援引韩国法律界7月26日消息,针对大田一所监狱100发子弹下落不...
Anthropic发布Opus... Anthropic正式发布Claude Opus 5人工智能模型。官方宣称,该模型在智能水平接近前沿...
从菲尔兹奖看广东的“育才密码” □李妹妍 7月23日,2026年国际数学家大会传来喜讯,中国籍学者邓煜、王虹双双摘得国际数学界最高荣...
神舟二十三号乘组太空之旅满两月... 神二十三号乘组朱杨柱、张志远、黎家盈在轨已满两月,空间站内各项科学实(试)验进展顺利。上周,三名航天...
紧张关系进一步升级,巴西外交部... 【环球网报道】美国《纽约时报》当地时间25日报道称,据美巴两国官员透露,巴西政府阻止了一个美国代表团...