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

 


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