shell编程之字符串比较和for循环

一、字符串比较

    字符串比较使用:= ,==,!=,\>,\<
    如:A=‘hello’,B=‘hi’
    判断A和B的值是否相等:[  $A  =  $B   ]或者 [  $A  ==  $B   ] 如果相等则返回真
    判断A和B的值是否不等:[  $A  !=  $B   ] 如果不相等则返回真
    需要注意的是:条件判断符两边要用空格隔开,否则会报错
    另外 \>  , \< 用来判断两个字符串大小比较,是通过ASCII来比较,要使用 \ 转义:如 ‘a’ \< 'b' ,‘ab’ \> 'aa'
    字符串是否为空判断:
    如:- n string 判断字符串string是否为空,不为空返回真,-z string 判断字符串是否为空,为空返回真。

二、for循环

用法: 
        for  变量名  in  列表
        do
                循环体
        done

三、脚本练习
1.要求:打印出用户的登录shell为/bin/bash的用户名。
#!/bin/bash
for i in cat /etc/passwd # cat /etc/passwd取出/etc/passwd中的每一行,并作为列表,把列表中的每一行循环赋值给i
do
username=echo $i | cut -d: -f1 #取出每行的用户名
sh=echo $i | cut -d: -f7 #取出每行的shell环境
if [[ $sh == '/bin/bash' ]];then #判断是否为/bin/bash
echo "$username"
fi
done
2.求1到100之间的和
#!/bin/bash
declare -i SUM=0 #declare -i 声明SUM变量为整数,赋值为0,也可以直接是SUM=0

#{1..100}表示生成1到100的数值列表,也可以使用seq 1 1 100生成1到100的列表,第一个1表示从1开始,第二个1表示步长为1,100是结束数字,步长可以省略,默认为1
for i in {1..100}
do
    SUM=$((  $SUM+$i ))
done
echo $SUM

猜你喜欢

转载自blog.51cto.com/13803030/2141214