SHELL编程入门(二)---SHELL循环与条件

循环

在shell中循环有三种,分别是for循环,while循环,以及util循环。·

for循环
#迭代风格
for var in list
do
    commands;
done;
#迭代风格
for var in {a..z}
do
    commands;
done;
#c风格的循环
for((i = 0;i < 10:i++))
{
    commands;
}
while循环
#while循环
while condition
do
    commands;
done;
util循环
#until循环会一直运行,指导条件为真
until condition
do
    commands;
done

比较与测试

if 条件

if condition
then
    commands;
fi
if condition
then
    commands;
else if condition; then
    commands;
else
    commands;
fi

算术比较

操作符含义
-eq等于
-ne不等于
-gt大于
-lt小于
-ge大于或等于
-le小于或等于

文件测试

操作符含义
-f是一个正确的文件路径或文件名,则返回真
-x可执行,则返回真
-d是一个目录,则返回真
-e文件存在,则返回真
-c字符设备,则返回真
-b块设备,则返回真
-w可写,则返回真
-r可读,则返回真
-L符号链接,则返回真

字符串比较

对于字符串型值得判断一般采用嵌套的中括号,如[[ str1== str2]]

操作符含义
=等于(和“==”相同)
==等于(和“==”相同)
!=不相同,则返回真
>按字母序排序,大于则返回真
<按字母序排序,小于则返回真
-z空字符串,则返回真
-n非空字符串,则返回真

如下所示是一段示例代码,通过对/etc/passwd文件的解析,获得每个用户的对应的SHELL。

#!/bin/bash
RES="$(cat /etc/passwd)"
ROOT=root
for line in $RES;
do
    oldIFS=$IFS
    IFS=:
    count=0
    for item in $line;
    do
       [ $count == 0 ] && user=$item;
       [ $count -eq 6 ] && shell=$item;
       let count++
    done;   
    IFS=$oldIFS
    echo user:$user shell:$shell;
done;

运行结果如下:
用户名和对应的shell

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值