加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell 流程控制

发布时间:2020-12-16 01:55:44 所属栏目:安全 来源:网络整理
导读: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 ite

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
    command1
    command2
    ...
    commandN
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,每一模式必须以右括号结束。取值可以为变量或常数。

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

casein
模式1)
    command1
    ...
    ;;
模式2)
    command1
    ...
    ;;
*)
    command1
    ...
    ;;
esac

?6. 函数

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读