Linux01-bash脚本编程之六使用脚本选项及组合条件测试23
練習(xí)1,寫腳本:
? ?傳遞3個指定的用戶參數(shù),運(yùn)行腳本自動創(chuàng)建用戶;例如:bash admin.sh user1,tom,jack
參考答案:# vim admin.sh
#!/bin/bash
#
echo $1
for I in `echo $1 | sed 's/,/ /g'`;do
? ? ? ?if id $I &> /dev/null;then
? ? ? ? ? ? ? ?echo "$I exists."
? ? ? ?else
? ? ? ? ? ? ? ?useradd $I
? ? ? ? ? ? ? ?echo $I | passwd --stdin $I &> /dev/null
? ? ? ? ? ? ? ?echo "$I add successfully."
? ? ? ?fi
done
練習(xí)2,寫腳本:
? ?根據(jù)練習(xí)1的腳本要求擴(kuò)展,例如:bash admin2.sh --add user1,tom,jack自動添加后面3個用戶;例如:
bash admin2.sh --del user1,tom,jack自動刪除后面3個用戶;
參考答案:# vim admin2.sh
#!/bin/bash
#
if [ $1 == "--add" ];then
? ? ? ?for I in `echo $2 | sed 's/,/ /g'`;do
? ? ? ? ? ? ? ?if id $I &> /dev/null;then
? ? ? ? ? ? ? ? ? ? ? ?echo "$I exists."
? ? ? ? ? ? ? ?else
? ? ? ? ? ? ? ? ? ? ? ?useradd $I
? ? ? ? ? ? ? ? ? ? ? ?echo $I | passwd --stdin $I &> /dev/null
? ? ? ? ? ? ? ? ? ? ? ?echo "$I add successful."
? ? ? ? ? ? ? ?fi
? ? ? ?done
elif [ $1 == "--del" ];then
? ? ? ?for I in `echo $2 | sed 's/,/ /g'`;do
? ? ? ? ? ? ? ?if id $I &> /dev/null;then
? ? ? ? ? ? ? ? ? ? ? ?userdel -r $I
? ? ? ? ? ? ? ? ? ? ? ?echo "Delete $I finish."
? ? ? ? ? ? ? ?else
? ? ? ? ? ? ? ? ? ? ? ?echo "$I not exist."
? ? ? ? ? ? ? ?fi
? ? ? ?done
else
? ? ? ?echo "Unknow."
fi
一、條件測試內(nèi)容回顧
? ?1、整數(shù)測試
? ? ? ?-le, -lt, -ge, -gt, -eq, -ne
? ?2、字符測試
? ? ? ?==, !=, >, <, -n, -z
? ?3、文件測試
? ? ? ?-e, -f, -d, -r, -w, -x
二、組合測試條件
? ?1、-a:與關(guān)系;
? ?2、-o:或關(guān)系;
? ?3、!:非關(guān)系;
? ? ? ?如:給定參數(shù)大于1小于3,如何表達(dá):
? ? ? ? ? ?if [ $# -gt 1 -a $# -le 3]
? ? ? ?或: ?if [ $# -gt 1] && [ $# -le 3 ]
練習(xí)3,寫腳本:
? ?傳遞一個參數(shù)(單字符就行)給腳本,如參數(shù)為q、Q、quit或Quit,就退出腳本;
? ?否則,就顯示不能識別的參數(shù);
參考答案:# vim quit.sh
#!/bin/bash
#
if [ $1 == 'q' -o $1 == 'Q' -o $1 == 'quit' -o $1 == 'Quit' ];then
? ? ? ?echo "Quiting..."
? ? ? ?exit 0
else
? ? ? ?echo "Unknow Argument."
? ? ? ?exit 1
fi
三、運(yùn)算符
? ?1、SUM=$[$SUM+$I]相當(dāng)于let SUM+=$I;
? ? ? ?let I+=1相當(dāng)于let I++
? ?2、取模
? ? ? ?-= let I-=相當(dāng)于let I--
? ? ? ?*=
? ? ? ?/=
? ? ? ?%=
練習(xí)4,寫腳本:
? ?計(jì)算100以內(nèi)所有奇數(shù)和所有偶數(shù)的和,并分別顯示;
參考答案:# vim sum.sh
#!/bin/bash
#
declare -i SUM1=0
declare -i SUM2=0
for I in `seq 1 100`;do
? ? ? ?if [ $[$I%2] == 0 ];then
? ? ? ? ? ? ? ?SUM1=$[$SUM1+$I]
? ? ? ?else
? ? ? ? ? ? ? ?SUM2=$[$SUM2+$I]
? ? ? ?fi
done
echo "The even sum is $SUM1."
echo "The obb sum is $SUM2."
轉(zhuǎn)載于:https://blog.51cto.com/zkhylt/1400335
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Linux01-bash脚本编程之六使用脚本选项及组合条件测试23的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 动态设置布局文件的exc
- 下一篇: SOA:A note on RPC