Linux for循环之不带列表for循环

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/magi1201/article/details/75727930


for循环是Linux shell 中最常用的结构。for 循环有三种结构:一种结构是列表for循环;第二种结构是不带列表for循环;第三种结构是类C风格的for循环。上篇博文讲解了列表for循环,本篇博文重点看不带列表for循环。不带列表for循环执行时,由用户指定参数和参数的个数。


不带列表for循环基本格式

for variable
do 
    command
    command
    ...
done

其中,do 和 done 之间的命令成为循环体,shell 会自动将命令行键入的所有参数依次组织成列表,每次将一个命令行键入的参数显示给用户,直至所有的命令行中的参数都显示给用户。这种结构的for循环和下面带列表的for循环的结构功能完全一致:

for variable in "$*"
do 
    command
    command
    ...
done
不带列表的for循环同样通过命令行来传递参数列表,上篇博文的ex8 for_ex8.sh 利用不带列表for循环改写脚本

[zhangqi@localhost shellscript]$ cat for_ex8_1.sh 
#!/bin/bash

echo "number of arguments is $#"

echo "What you input is :"

#使用命令打印数组
for argument 
do
    echo "$argument "
done

[zhangqi@localhost shellscript]$ sh for_ex8_1.sh 2 linux shell
number of arguments is 3
What you input is :
2 
linux 
shell 
[zhangqi@localhost shellscript]$ 

脚本for_ex8_1.sh 与 for_ex8.sh 的执行结果相同,不带列表for循环结构比带列表for循环结构简洁易读,但其只可从命令行来传递参数。所以,这种方式在shell编程中使用相对较少。

猜你喜欢

转载自blog.csdn.net/magi1201/article/details/75727930