流程控制語句(bash)

2021-09-12 06:50:33 字數 3556 閱讀 1371

1.if控制語句   if then fi     if then else fi    if then elif then elif then ······ else fi

if  條件表示式

then 命令序列(滿足條件才執行) #注意,如果if與then(elif與then)寫在同一行,要用;隔開)  

fiif  條件表示式;then 

命令序列

fi  

if  條件表示式

then  命令序列1(條件滿足)

else  命令序列1(條件不滿足)

fiif  條件表示式1

then  命令序列1

elif 條件表示式2

then  命令序列2

······

else  命令序列(以上條件均不滿足)

fi#!/bin/bash                                      # ex.sh

read -p "enter your score(0-100): " grade      # read命令

if [ $grade -ge 85 ] && [ $grade -le 100 ] ;then 

echo "$grade is excellent"

elif [ $grade -ge 70 ] && [ $grade -le 84 ]

then echo "$grade is pass"

elif [ $grade -gt 100 ]

then echo "$grade is error"

elif [ $grade -lt 0 ]

then echo "$grade is error"

else

echo "$grade is fail"

fi                                             bash ex.sh    sh ex.sh    ./ex.sh

2.for控制語句

for 變數名 in 控制列表  

do命令序列

done

# vim name.txt  #每行只有乙個使用者

andy

barry

carl

sjd#!/bin/bash                                        #user.sh

read -p "enter the users password: " passwd  #讀取密碼,所有使用者的密碼設定相同 

for name in `cat name.txt`

doid $name &> /dev/null

if [ $? -eq 0 ]

then 

echo "already exists"

else 

useradd $name &> /dev/null

echo "$passwd" | passwd --stdin $name &> /dev/null

if [ $? -eq 0 ]

then 

echo "$name, create success"

else 

echo "$name, create failure"

fifi

done        bash user.sh   tail -n 4 /etc/passwd  檢視新建使用者資訊  for name in `cat name.txt`  等

價於 for name in $(cat name.txt)   或者: eh= $(cat name.txt)   for name in $eh

3.while控制語句

while 條件表示式

do命令序列

done

#!/bin/bash                                  #guess.sh

price=$(expr $random % 1000)     #或者  price=`expr $random % 1000`

times=0

echo "商品實際**為0~999之間,猜猜看是多少?"

while true

doread -p "please input the value that you guess: " gu

let times++

if [ $price -eq $gu ]

then echo "congratulations! your guess is accurate which is $price"

echo "the times that you guess is $times"

exit 0

elif [ $gu -gt $price ]

then echo "your guess is bigger"

else

echo "your guess is lower"

fidone        bash guess.sh         $random為環境變數,系統隨機產生乙個隨機數(範圍為0~32767)。使用

expr命令取得後面表示式的結果。exit 0 跳出while迴圈。

4.case控制語句

case 變數值 in

模式1)

命令序列1

;;模式2)

命令序列2

;;······

*)預設命令序列

esac

當變數指都不符合以上的模式時,則執行預設命令序列。

#!/bin/bash                                          #exw.sh

read -p "please input a character: " ku

case $ku in

[a-z])

echo "你輸入的是字母!"

;;[0-9])

echo "你輸入的是數字!"

;;*)

echo "你輸入的是其它字元!"

esac       [a-z]  可以匹配所有大小寫字母,並不僅僅只是小寫字母,與上面矛盾(經試驗證明)

5.計畫任務服務程式

在指定的時間段自動啟用或停止某些服務或命令,從而實現運維的自動化。

一次性計畫任務:如今晚11:30開啟**服務   at 時間   設定一次性計畫任務    at -l 檢視還未執行的一次性計畫任務   atrm 任務序號 刪除對應的還未執行的一次性計畫任務    # at 11:30    systemctl restart httpd   ctrl+d組合鍵來結束計畫任務的編寫   這是採用互動的方式來實現一次性計畫任務,可以利用管道符來直接實現: echo "systemctl restart httpd" | at 11:30    即可    然後就可以用at -l命令檢視

長期性計畫任務:如每週一3:25分把/home/luciusvorenus目錄打包備份為backup.tar.gz          crontab -e 建立、編輯計畫任務書   crontab -l 檢視計畫任務   注意:每一行只能寫一條計畫任務,且命令必須採用絕對路徑的方式書寫,如:/uer/bin/rm     可用whereis 或which命令檢視  

Python流程控制語句流程控制語句

流程控制語句1 if語句 if 語句基本用法 if 表示式 語句塊其中,表示式可以是乙個單純的布林值或變數,也可以是比較表示式或邏輯表示式,如果表示式為真,則執行 語句塊 如果表示式的值為假,就跳 過 語句塊 繼續執行後面的語句。2 if else語句 if else 語句基本用法 if 表示式 語...

流程控制語句

for a b c 若迴圈體中出現continue,c語句仍得到執行。while dowhile b 執行完do後大括號,再檢驗while b 條件,若為真,繼續。從而有a語句塊至少執行一次的特性。continue 迴圈體內餘下語句忽略,繼續下次迴圈。break用於跳出迴圈或switch.case....

流程控制語句

迴圈 while do while for 判斷 if else switch case 異常處理 try catch finally throw 分支 break continue label return 迴圈 while和do while語句 while語句用於在條件保持為true時反覆執行乙...