15.1.2 不带列表的for循环

不带列表的for循环的结构如下所示:


  1. for VARIABLE

  2. do

  3. command

  4. done


读者一定会诧异:既然没有列表,那么如何向这个for循环传递变量值呢?实际上,使用不带列表的for循环时,需要在运行脚本时通过参数的方式给for循环传递变量值。


  1. [root@localhost ~]# cat for_list06.sh

  2. #!/bin/bash

  3. for VARIABLE

  4. do

  5. echo -n "$VARIABLE "

  6. done

  7. echo

  8. #

  9. 运行时向脚本传入参数

  10. [root@localhost ~]# bash for_list06.sh 1 2 3

  11. 1 2 3


该语法虽然可以工作,但是可读性较差,所以不建议使用。可利用特殊变量$@改写上述结构,使其变成下面的形式,功能是完全一样的。


  1. [root@localhost ~]# cat for_list07.sh

  2. #!/bin/bash

  3. for VARIABLE in $@

  4. do

  5. echo -n $VARIABLE

  6. done

  7. #

  8. 运行时传入参数

  9. [root@localhost ~]# bash for_list07.sh 1 2 3

  10. 1 2 3