3
44、shell脚本编程-循环语句
source link: https://blog.51cto.com/gavenlee/5757588
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
44、shell脚本编程-循环语句
推荐 原创for循环
for NAME [in WORDS ... ] ; do COMMANDS; done
for 变量名 in 列表;do
循环体
done
for 变量名 in 列表
do
循环体
done
for 变量名 in 列表;do
循环体
done
for 变量名 in 列表
do
循环体
done
另外一种for循环格式
for (( exp1; exp2; exp3 )); do COMMANDS; done
for ((控制变量初始化;条件判断表达式;控制变量的修正表达式))
do
循环体
done
等同于
Equivalent to
(( EXP1 ))
while (( EXP2 )); do
COMMANDS
(( EXP3 ))
done
for ((控制变量初始化;条件判断表达式;控制变量的修正表达式))
do
循环体
done
等同于
Equivalent to
(( EXP1 ))
while (( EXP2 )); do
COMMANDS
(( EXP3 ))
done
for 循环生成列表的方式
整数列表 {1..10} $(seq 10) `seq 10`
返回命令列表 $(command)
支持通配符 *.sh等
变量应用 $@ $* $#
返回命令列表 $(command)
支持通配符 *.sh等
变量应用 $@ $* $#
for循环扫描网段判断机器存活
while循环
while CONDITION; do COMMANDS; done
while CONDITION; do
循环体
done
CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环,因此:CONDTION一般应该有循环控
制变量;而此变量的值会在循环体不断地被修正进入条件:CONDITION为true退出条件:CONDITION为false
while CONDITION; do
循环体
done
CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环,因此:CONDTION一般应该有循环控
制变量;而此变量的值会在循环体不断地被修正进入条件:CONDITION为true退出条件:CONDITION为false
until循环
until COMMANDS; do COMMANDS; done
until CONDITION; do
循环体
done
说明:
进入条件: CONDITION 为false
退出条件: CONDITION 为true
until CONDITION; do
循环体
done
说明:
进入条件: CONDITION 为false
退出条件: CONDITION 为true
循环控制语句
continue
continue [n]:提前结束第几层循环,而直接进入下一轮判断循环,当前层为1,往外嵌套为2,默认值为1;
while CONDITION1; do
CMD1
...
if CONDITION2; then
continue
fi
CMDn
...
done
CMD1
...
if CONDITION2; then
continue
fi
CMDn
...
done
break
break [n] 提前结束第n层整个循环,最内层为1层
while CONDITION1; do
CMD1
...
if CONDITION2; then
break
fi
CMDn
...
done
CMD1
...
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
(( $# > 0 ))
do
echo $*
shift
done
while read及循环select菜单
while read
while read 可以变量文件或文本的每一行
while read line; do
循环体
done < /PATH/FROM/SOMEFILE
循环体
done < /PATH/FROM/SOMEFILE
select
select NAME [in WORDS ... ;] do COMMANDS; done
select variable in list ;do
循环体命令
done
说明:
select 循环主要用于创建菜单,按数字顺序排列的菜单项显示在标准错误上,并显示 PS3 提示符,等待用户输入用户输入菜单列表中的某个数字,执行相应的命令用户输入被保存在内置变量 REPLY 中
select 是个无限循环,因此要用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c退出循环
select 经常和 case 联合使用与 for 循环类似,可以省略 in list,此时使用位置参
select variable in list ;do
循环体命令
done
说明:
select 循环主要用于创建菜单,按数字顺序排列的菜单项显示在标准错误上,并显示 PS3 提示符,等待用户输入用户输入菜单列表中的某个数字,执行相应的命令用户输入被保存在内置变量 REPLY 中
select 是个无限循环,因此要用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c退出循环
select 经常和 case 联合使用与 for 循环类似,可以省略 in list,此时使用位置参
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK