shell編程之字符串比較和for循環
阿新 • • 發佈:2018-07-13
shell編程 登錄shell etc 編程 否則 整數 循環 字符串比較 之間 一、字符串比較
echo "$username"
fi
done
2.求1到100之間的和
#!/bin/bash
declare -i SUM=0 #declare -i 聲明SUM變量為整數,賦值為0,也可以直接是SUM=0
字符串比較使用:= ,==,!=,\>,\< 如: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
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
shell編程之字符串比較和for循環