要点:
shell/ target=_blank class=infotextkey>shell脚本中for循环语句
一、for循环
基本格式
for 变量 in 取值列表
do
各种操作
done
还有罕见的写法就是都写作一行里:
for 变量 in 取值列表 ; do 各种操作 ;done
取值列表大致可以分成枚举和迭代两类
枚举
普通枚举
取值列表为空格或回车符分割的字符串
在终端执行该脚本for.sh。运行结果
配合命令替换
命令替换即` `和$( )两种操作符的使用。命令替换配合for循环很常见。
比如系统用户叫做jelly,现在新建了一个叫做guodong的用户。
但是guodong用户缺少很多组权限。我想让guodong拥有jelly所在的全部组。
可以这样:
请用root运行该脚本,这样就完成了一个给用户guodong批量添加组的任务。
迭代
花括号{ }
数字迭代,比如{1..100}
字母迭代,比如{a..z},{A..Z},{Z..A}
ASCII字符迭代,比如{a..A}
例子,计算1加到100的和:
结果是5050.
花括号的迭代还可以指定指定增量,格式如下:
{首..尾..增量}
例子,计算1到100以内的所有奇数的和:
需要配合命令替换使用。seq命令的格式为:
seq 首数 [增量] 末数
请注意增量的位置在中间,这与前面提到的花括号不同。
例子(改编自《Shell Scripting Expert Recipes for linux,Bash,and More》P114)
用脚本来ping一下局域网内的主机:
当然了for循环也可以写作for i in {100..110}
终端运行的结果:
C风格for循环
Bash还支持C语言风格的for循环。
例子,计算1到100的和。
注意,此处的for循环要有两层括号。