shell进阶
◆ 条件选择 if语句 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if 判断条件 1 ; then 条件为真的分支代码 elif 判断条件 2 ; then 条件为真的分支代码 elif 判断条件 3 ; then 条件为真的分支代码 else 以上条件都为假的分支代码 Fi 注意:if 语句可进行嵌套 ◆条件判断:case 语句 case 变量引用 in PAT1) 分支1 ;; PAT2) 分支2 ;; *) 默认分支 ;; esac ◆ for 循环语法:for 变量名 in 列表;do 循环体 done 执行机制 :依次 将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束。 列表生成方式: (1) 直接给出 列表 (2) 整数列表: (a) {start..end} (b) $(seq [start [step]] end) (3) 返回列表的 命令 $(COMMAND) (4) 使用glob, , 如:*.sh (5) 变量引用;$@,$* for循环的特殊格式 for (( 控制变量初始化; 条件判断表达式; 控制变量的修正表达式)) do 循环体 done 控制变量初始化:仅在运行到循环代码段时执行一次 控制变量的修正表达式:每轮循环结束会先进行控制变量修正运算,而后再做条件判断 例如: For ((i=1;sum=0;i<=100;i++));do [ $[i%2] ?Ceq 1 ]&& sum+=i Done Echo sum=$sum ◆ while 循环while CONDITION; do 循环体 done
进入条件:CONDITION 为true 退出条件:CONDITION 为false
while 循环的特殊用法(遍历文件的每一行): while read line;do 循环体 done </PATH/FROM/SOMEFILE 依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将行赋值给变量line
◆ until 循环until CONDITION; do 循环体 done 进入条件: CONDITION 为false 退出条件: CONDITION 为true continue:结束本轮循环,进入到下一轮循环。 break:结束本次循环 ◆ shift命令
用于将参量列表 list 左移指定次数,缺省为左移一次。 参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。whil到循环遍历位置参量列表时,常用到 shift。 一般用于参数不确定的情况下
◆创建无限循环while true; do 循环体 done until false; do 循环体 Done
◆select 循环与菜单select variablein list do 循环体命令 done select (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |