shell循環控制語句介紹及使用

shell循環控制語句介紹及使用

1breakcontinueexitshift說明

breakcontinueexit一般用於循環結構中控制循環的走向。

命令

說明

break   n

n表示跳出循環的次數,如果省略n表示跳出整個循環

continue   n

n表示退到第n層繼續循環,如果省略n表示跳過本次循環進入下一次循環

exit   n

退出當前的shell程序,並返回nn也可以省略

return

用於返回一個退出值給調用的函數

shift

用於將參數列表list左移指定次數,最左端的那個參數就從列表中刪除,其後邊的參數繼續進入循環

 

2break腳本實現

[root@localhost ~]# cat break1.sh

#!/bin/bash

for((i=0;i<=5;i++))

  do

    if [ $i -eq 3 ];then

         break;

    fi

       echo $i

   done

echo "ok"

 

#運行結果爲:

[root@localhost ~]# bash break1.sh

0

1

2

ok

 

3continue腳本實現

[root@localhost ~]# cat continue.sh

#!/bin/bash

for((i=0;i<=5;i++))

  do

    if [ $i -eq 3 ];then

         continue;

    fi

       echo $i

   done

echo "ok"

 

#運行結果爲:

[root@localhost ~]# bash continue.sh

0

1

2

4

5

ok

4exit腳本實現

[root@localhost ~]# cat exit.sh

#!/bin/bash

for((i=0;i<=5;i++))

  do

    if [ $i -eq 3 ];then

         exit

    fi

       echo $i

   done

echo "ok"

 

#運行結果爲:

[root@localhost ~]# bash exit.sh

0

1

2

5、循環控制shift命令

shift命令用於將參數列表list左移指定次數,最左端的那個參數就從列表中刪除,其後邊的參數繼續進入循環。

5.1shift命令實例:創建指定的多個用戶

#!/bin/bash

if [ $# -eq 0 ];then

   echo "請在腳本後輸入參數(例如:$0 arg1"

   exit 1

else

   while [ -n "$1" ];do

      useradd $1

      echo 123|passwd --stdin $1

      shift

   done

fi

運行結果:

[root@localhost script]# bash if_while_shift.sh a1 a2 a3

更改用戶 a1 的密碼

passwd:所有的身份驗證令牌已經成功更新。

更改用戶 a2 的密碼

passwd:所有的身份驗證令牌已經成功更新。

更改用戶 a3 的密碼

passwd:所有的身份驗證令牌已經成功更新。

[root@localhost script]#

分析:如果沒有輸入參數(參數的總數爲0),提示錯誤並退出;反之,進入循環;若第一個參數不爲空字符,則創建以第一個參數爲名的用戶,並移除第一個參數,將緊跟的參數左移作爲第一個參數,直到沒有第一個參數,退出。

5.2、打印直角三角形的字符

#!/bin/bash

while (($# > 0));do

   echo "$*"

   shift

done

 

運行結果:

[root@localhost script]# bash if_while_shift1.sh 1 2 3 4 5 6 7

1 2 3 4 5 6 7

2 3 4 5 6 7

3 4 5 6 7

4 5 6 7

5 6 7

6 7

7

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章