Shell 流程控制和函数

1. if-else

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

写成一行(适用于终端命令提示符):

$ if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "True"; else echo "False"; fi

2. for 循环

for var in item1 item2 ... itemN
do
    command
done

写成一行(适用于终端命令提示符):

$ for ((i=0; i<5; i++)); do echo "$i"; done

3. while 循环

while condition
do
    command
done

写成一行(适用于终端命令提示符):

$ n=1
$ while [ $n -le 5 ]; do echo "$n"; let n++; done

4. until 循环

until condition
do
    command
done

写成一行(适用于终端命令提示符):

$ n=1
$ until [ $n -gt 5 ]; do echo "$n"; let n++; done

while 循环,当 condition 为真时执行循环体;until 循环刚好和 while 循环相反。

5. case 语句

case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。

取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数。

取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

case 值 in
模式1)
    command1
    ;;
模式2)
    command1
    ;;
*)
    command1
    ;;
esac

 6. 函数

[ function ] funname()
{
    action;
    [return int]
}
  • 可以使用 function fun() 定义,也可以直接 fun() 定义。不带任何参数。
  • 可以加 return 返回。如果不加,将以最后一条命令运行结果,作为返回值。

函数返回值在调用该函数后通过 $? 来获得。

注意:所有函数在使用前必须先定义。调用函数使用其函数名即可。

调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值。当 n>=10 时,需要使用 ${n} 来获取参数。

posted @ 2019-07-21 11:03  PIPO2  阅读(157)  评论(0编辑  收藏  举报