If
格式:
if [ condition ] #注意[ 、] 要与condition左右空一格
then
commands #代码块 一行或者多行代码
elif [ condition 2]
then
commands
else
commands
fi
#if高级使用
if (()) #双小括号可以插入运算式
e.g. if (( 1+1>2))
#if [[ ]] #双中括号可以中使用通配符
e.g. if[[ $var ==w*]] #变量var以w开头的值
#简写
# 条件为真采用&&符号链接命令块,条件为假采用||链接命令块;条件还是使用【】包裹起来
e.g.
[ $USER == 'root' ]&&echo "is root" || echo "not root"
for
seq 命令 ;
seq num1 num2 跟两位数表示输出num1直到num2
seq num1 num2 num3 跟三位数表示从num1开始,每次增加num2,只到到达num3
[root@localhost]# seq 1 2 10
1
3
5
7
9
for in list
for variable_name in {list}
do
commands
…
done
或者
for variable in a b c
do
commands
…
done
或者不带列表时,由启动时来指定参数
for var
do
echo $var
done
类C风格
for (( i=1;i<=10;i++))
do
echo $i
done
for循环控制
#break 跳出循环(当嵌套for循环时,break 后跟数字来指定跳出哪层循环,以最里层往外,从1开始)
for i in `seq 1 10`
do
echo $i
if [ $i -eq 5 ]
then
break
fi
done
#continue 跳过本次循环
for i in `seq 1 10`
do
if [ $i -eq 5 ]
then
continue
fi
echo $i
sleep 2 #sleep 后跟数字来指定休息时间(秒);控制循环节奏;避免内存和CPU的巨大消耗
done
#exit 退出脚本释放资源
exit 0
# 无限循环
for (( ;; ))
while
适用于未知循环次数的循环
格式:
while [ condition ]
do
command...
done
e.g.
var=1
while [ $var -le 5 ]
do
echo $var
let var++
done
#无限循环
while :
do
commands
done
#或者
while true
do
commands
done
#break和continue用法同for
until
条件为假就进入循环;条件为真就退出循环
格式
until [ condition ]
do
command...
done
#一般与while组合使用
i=10
while [ $i -le 20 ]
do
echo $i
let i++
until [ $i -le 20 ]
do
echo $i
let i++
[ $i -eq 30 ]&&break
done
done
case
格式:
case $var in 定义变量;var代表是变量名
condition1) 模式1;用 | 分割多个模式,相当于or
command1 需要执行的语句
;; 两个分号代表命令结束
condition2)
command2
;;
condition3)
command3
;;
*) default,不满足以上模式,默认执行*)下面的语句
command4
;;
esac esac表示case语句结束
函数
#格式1
函数名 () {
代码块
return N
}
#格式2
function 函数名 {
代码块
return N
}
#.return默认返回函数中最后一个命令的退出状态,也可以给定参数值,该参数值的范围是0-256之间。
#.如果没有return命令,函数将返回最后一个Shell的退出值。
#函数调用
函数名
#函数的命令行调用
##首先需要source 脚本
##函数名 调用指定函数