除了 while 循环和 until 循环,Shell 脚本中还有for 循环,for 循环有两种使用形式:C语言风格的for循环与Python语言风格的for in循环,两种形式的for循环用法对比如下:
for循环
用法
实例1
实例2
C语言风格
for((exp1; exp2; exp3))
do
statements
done
exp1/exp2/exp3分别代表初始化语句、判断条件、自增或自减,三者皆可省略,但是分号(;)必须保留。
它的运行过程为:
运行结果:
The sum is: 5050
省略exp1的实例
可以看到,将i=1
移到了 for 循环的外面
省略 exp2,没有了判断条件,如果不作其他处理就会成为死循环,因此可以在循环体内部使用 break 关键字强制结束循环
省略exp3的实例
省略了 exp3,就不会修改 exp2 中的变量,这时可在循环体中加入修改变量的语句。
Python语言风格
for var in val_list
do
statements
done
它的运行过程为:
各种val_list:
在 in 关键字后面直接给出具体的值,多个值之间以空格分隔,比如1 2 3 4 5
、"abc" "390" "tom"
等
运行结果:
1
2
3
4
The sum is 10
给出一个取值范围,格式为:{start..end},注意中间用两个点号相连,该形式只支持数字和字母。
运行结果:
5050
输出从 A 到 z 之间的所有字符:
输出结果:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
[]^_`abcdefghijklmnopqrstuvwxyz
可以发现,Shell 是根据 ASCII 码表来输出的。
使用命令的执行结果
求偶数和
运行结果:
2550
seq 是一个 Linux 命令,用来产生某个范围内的整数,并且可以设置步长。
seq 2 2 100
表示从 2 开始,每次增加 2,到 100 结束。
使用shell通配符
使用通配符时,不适用ls命令也可查看当前目录下的文件
运行结果:
demo.sh
test.sh
abc.sh
使用特殊变量,如 $#、$*、$@、$?、$$ 等
在函数中
运行结果:
C++
Java
Python
使用特殊变量,如 $#、$*、$@、$?、$$ 等
省略 val_list,省略后的效果和使用$@
一样
运行结果:
C++
Java
Python
手机扫一扫
移动阅读更方便
你可能感兴趣的文章