日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Linux01-bash脚本编程之六使用脚本选项及组合条件测试23

發(fā)布時(shí)間:2025/5/22 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux01-bash脚本编程之六使用脚本选项及组合条件测试23 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


練習(xí)1,寫腳本:

? ?傳遞3個(gè)指定的用戶參數(shù),運(yùn)行腳本自動(dòng)創(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自動(dòng)添加后面3個(gè)用戶;例如:

bash admin2.sh --del user1,tom,jack自動(dòng)刪除后面3個(gè)用戶;

參考答案:# 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,寫腳本:

? ?傳遞一個(gè)參數(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。