18 Dec 2014
while [ 判断表达式 ] do 执行语句1; 执行语句2; ... done ## 若不确定循环次数,常用while
***************************************** #!/bin/bash ## 这里用read来读取输入文件的每一行,这里也可以写"while read string" while read do echo good; # 这里把$1的内容按照行传进循环 done < $1 ***************************************** # cat while.txt 1 2 3 4 5 6 # sh while.sh good good good good good good ## 修改 while read 为 while read number ***************************************** #!/bin/bash while read string do echo $string; done < $1 ***************************************** # sh while.sh while.txt 1 2 3 4 5 6
## 语法1 for (( 赋初值;条件判断;初值的变化 )) do 执行语句1; 执行语句2; ... done ## 语法2 for 变量 in a b c ... do 执行语句1; 执行语句2; ... done ## 可以使用``来将命令的执行结果传递给for循环中的循环变量里 ## 语法3 for 变量 in `cmd` do 执行语句1; 执行语句2; ... done
########## # 语法举例 ######### ## 从1-10,步长默认为1 # for 变量 in `seq 1 10` ## 从10-1,步长为1 # for 变量 in `seq 10 -1 1` ## 从0-100,步长为20,但数字宽度需要一致 ## -w会让所有数字都适配数字的最大宽度 # for 变量 in `seq -w 1 100` ########## # 用法举例 ########## seq -w 0 20 100 000 020 040 060 080 100 # 扩展-ls for i in `ls`;do echo $i;done 12.log 1.log 1.txt # 扩展-find for i in `find . -type d`;do echo $i;done . ./perm ./.ssh ./fugai # 在执行语句只有一句时,for 变量 in `cmd`也可以用管道代替 cmd | xargs -i 执行语句1