标签:pass 判断字符串 str declare 打印 pre 报错 比较 passwd
一、字符串比较    字符串比较使用:= ,==,!=,\>,\<
    如: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标签:pass 判断字符串 str declare 打印 pre 报错 比较 passwd
原文地址:http://blog.51cto.com/13803030/2141214