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]#

相关内容

热门资讯

今天,我们如何养育“手机里泡大... 未成年人思想道德建设工作座谈会日前召开,其中“着力提高网络育人能力,提升未成年人网络素养”的表述备受...
最新引进“白金岛红拐弯.到底是... 有 亲,根据资深记者爆料白金岛红拐弯是可以开挂的,确实有挂(咨询软件无需...
【第一财经】“亲友游戏.到底是... 网上科普关于“亲友游戏有没有挂”话题很是火热,小编也是针对亲友游戏作*弊开挂的方法以及开挂对应的知识...
我来教教您“桂麻圈.有没有挂?... 网上科普关于“桂麻圈有没有挂”话题很是火热,小编也是针对桂麻圈作*弊开挂的方法以及开挂对应的知识点,...
最新引进“畅游贵州麻将.怎么装... 有 亲,根据资深记者爆料畅游贵州麻将是可以开挂的,确实有挂(咨询软件无需...
我来教教您“九线拉王.怎么开挂... 家人们!今天小编来为大家解答九线拉王透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
终于懂了“新世界牛牛.辅助器?... 终于懂了“新世界牛牛.辅助器?”其实是有挂您好,新世界牛牛这个游戏其实有挂的,确实是有挂的,需要了解...
玩家攻略科普“笑傲江湖.可以开... 您好:笑傲江湖这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
玩家最新攻略“家乡大贰.开挂神... 网上科普关于“家乡大贰有没有挂”话题很是火热,小编也是针对家乡大贰作*弊开挂的方法以及开挂对应的知识...
今日重大发现“新大圣炸金花.怎... 您好:新大圣炸金花这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款...