for循环 格式 for NAME [in WORDS ... ] ; do COMMANDS; done for 变量名 in 列表;do 循环体 done for 变量名 in 列表 do 循环体 done 另外一种for循环格式 for (( exp1; exp2; exp3 )); do COMMANDS; done for ((控制变量初始
for循环
格式
for NAME [in WORDS ... ] ; do COMMANDS; donefor 变量名 in 列表;do
循环体
done
for 变量名 in 列表
do
循环体
done
另外一种for循环格式
for (( exp1; exp2; exp3 )); do COMMANDS; donefor ((控制变量初始化;条件判断表达式;控制变量的修正表达式))
do
循环体
done
等同于
Equivalent to
(( EXP1 ))
while (( EXP2 )); do
COMMANDS
(( EXP3 ))
done
for 循环生成列表的方式
整数列表 {1..10} $(seq 10) `seq 10`返回命令列表 $(command)
支持通配符 *.sh等
变量应用 $@ $* $#
for循环扫描网段判断机器存活
while循环
格式
while CONDITION; do COMMANDS; donewhile CONDITION; do
循环体
done
CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环,因此:CONDTION一般应该有循环控
制变量;而此变量的值会在循环体不断地被修正进入条件:CONDITION为true退出条件:CONDITION为false
until循环
格式
until COMMANDS; do COMMANDS; doneuntil CONDITION; do
循环体
done
说明:
进入条件: CONDITION 为false
退出条件: CONDITION 为true
循环控制语句
continue
continue [n]:提前结束第几层循环,而直接进入下一轮判断循环,当前层为1,往外嵌套为2,默认值为1;
格式
while CONDITION1; doCMD1
...
if CONDITION2; then
continue
fi
CMDn
...
done
break
break [n] 提前结束第n层整个循环,最内层为1层
格式:
while CONDITION1; doCMD1
...
if CONDITION2; then
break
fi
CMDn
...
done
shift
shift [n] 用于可以将参数列表list左移次数,默认为1次;参数列表list一旦被移动,最左端哪个参数就从列表删除
格式
while [ $You can't use 'macro parameter character #' in math mode# -gt 0 ] # or(( $# > 0 ))
do
echo $*
shift
done
while read及循环select菜单
while read
while read 可以变量文件或文本的每一行
格式
while read line; do循环体
done < /PATH/FROM/SOMEFILE
select
格式
select NAME [in WORDS ... ;] do COMMANDS; doneselect variable in list ;do
循环体命令
done
说明:
select 循环主要用于创建菜单,按数字顺序排列的菜单项显示在标准错误上,并显示 PS3 提示符,等待用户输入用户输入菜单列表中的某个数字,执行相应的命令用户输入被保存在内置变量 REPLY 中
select 是个无限循环,因此要用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c退出循环
select 经常和 case 联合使用与 for 循环类似,可以省略 in list,此时使用位置参