shell for循环及分号、括号使用
转自:https://cloud.tencent.com/developer/article/1692546
1.for循环
1.1 变量取值
for 变量名 in 变量取值表 do 指令 done #示例 for a in {1..9} do mkdir dir$a done 说明:创建9个目录,变量名a会依次从变量取值表中拿内容,一次取一个,知道取完
其中{}大括号生成数字序列,'seq 1 9'类似的也可以 。
1.2 C语言型
for ((exp1;exp2;exp3)) do 指令 done #示例 for ((i=1;i<=3;i++)) do echo $i done #解释:i从1开始,当i<=3就可以运行,如果运行的值大于3,就退出循环 #语法结构讲解 for关键字后的双括号是三个表达式, 第一个是变量初始化(例如:i=1),第二个为变量的范围(例如i<=3),第三个为变量自增或自减(例如i++)。 当第一个表达式的初始化值符合第二个变量的范围时,就进行如循环执行,当条件不满足时就退出循环
2.括号
https://cloud.tencent.com/developer/article/1666172
2.1 ()单层
命令替换。等同于`comm`,shell扫描一遍命令行,发现了$(comm)结构,便将$(comm)中的comm执行一次,得到其标准输出,再将此输出放到原来命令。
# ls a b c # echo $(ls) a b c #echo `ls` a b c
# echo \(ls\)
(ls)
2.2 (())双层
只对变量有用,相当于$,对命令没有用:
# echo ((ls)) bash: syntax error near unexpected token `('
3.分号
https://www.cnblogs.com/EasonJim/p/8315896.html,讲的清晰易懂。
在一行代码中,用于代码分块;如果已经有了换行符,那就不需要分号去分块了。