shell进阶
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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) 变量引用;[email protected], $*
for循环的特殊格式
for (( 控制变量初始化; 条件判断表达式; 控制变量的修正表达式))
do
循环体
done
控制变量初始化:仅在运行到循环代码段时执行一次
控制变量的修正表达式:每轮循环结束会先进行控制变量修正运算,而后再做条件判断
例如:
For ((i=1;sum=0;i<=100;i++));do
[ $[i%2] –eq 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
本文出自 “13162732” 博客,请务必保留此出处http://13172732.blog.51cto.com/13162732/1966086
以上是关于shell进阶的主要内容,如果未能解决你的问题,请参考以下文章