shell流程控制(判断、循环)

1.判断控制语句

if语句

if condition1
then
    command1
elif condition2
then
    command2
else
    command3
fi

case语句

case var in
patten 1)
    command1
    ;;
patten 2)
    command2
    ;;
*)
    command3
    ;;
esac
2.循环控制语句

for循环

for var in {list}
do
    command
done
​
for i in a b c;do echo $i;done
for ((i=1;i<=10;i++));do echo $i;done

while循环

while 条件表达式
do
command
done
#打印1-5数字
i=0
while [ $i -le 5 ]
do
    echo $i
    i=$[$i+1]
done

until循环与while循环相反,条件为假时进入循环,条件为真退出循环。

continue:跳过本次循环,开始下一次循环;

break:结束整个循环;

exit:直接跳出程序;

3.条件判断

格式1:test 条件表达式

格式2:[ 条件表达式 ]

格式3:[[ 条件表达式 ]]

条件判断相关参数

判断文件类型:

#判断文件类型
-e  判断文件是否存在
-f  判断文件是否存在且是一个普通文件
-d  判断文件是否存在且是一个目录
-L  判断文件是否存在且是一个软连接文件
-s  判断文件是否存在且是一个非空文件
​
test -e file 只要文件存在条件为真 
[ -d /shell01/dir1 ] 判断目录是否存在,存在条件为真 
[[ -f /shell01/1.sh ]] 判断文件是否存在,并且是一个普通的文件

判断文件权限:

#判断文件权限
-r  当前用户是否可读
-w  当前用户是否可写
-x  当前用户是否可执行
-u  是否有suid,高级权限冒险位
-g  是否sgid,高级权限强制位
-k  是否有t位,高级权限粘滞位

判断文件新旧:

file1 -nt file2     比较file1是否比file2新
file1 -ot file2     比较file1是否比file2旧
file1 -ef file2     比较是否为同一个文件

判断整数:

-eq     等于
-ne     不等于
-gt     大于
-lt     小于
-ge     大于等于
-le     小于等于

判断字符串:

-z      判断是否为空字符串
-n      判断是否为非空字符串
str1 = str2     判断字符串是否相等
str1 != str2        判断字符串是否不相等

连接符:

-a和&&表示与;[ 1 -eq 1 -a 1 -ne 0 ]

-o和||表示或;

分号;只用来分割命令或表达式

uid=`id -u` 
test $uid -eq 0 && echo this is admin 
[ $(id -u) -ne 0 ] || echo this is admin 
[ $(id -u) -eq 0 ] && echo this is admin || echo this is not admin

类C风格的数值比较;在(( ))中=表示赋值,==表示判断。

双引号引起来,看作一个整体;= 和 == 在 [ 字符串 ] 比较中都表示判断 .

((2>=1));echo $? 
a='hello world';b=world 
[ $a = $b ];echo $? 
[ "$a" = "$b" ];echo $? 
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

特亿安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值