shell流程控制

一、shell流程控制

1、和其他语言不一样,sh 的流程控制不可为空。如果 else 分支没有语句执行,就不要写这个 else。

2、if else 流程

(1)if 语句语法格式:

if condition
then
    command1 
    command2
    ...
    commandN 
fi

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

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

末尾的 fi 就是 if 倒过来拼写,表示 if 结束。

(2)if else 语法格式:

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

(3)if else-if else 语法格式:

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi
#以下实例判断两个变量是否相等:
a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi

#输出结果:a 小于 b

3、for 循环   ——   for循环一般格式为:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

  写成一行:

for var in item1 item2 ... itemN; do command1; command2… done;

  当变量值在列表里,for 循环即执行一次所有命令,使用变量名获取列表中的当前取值。命令可为任何有效的 shell 命令和语句。in 列表可以包含替换、字符串和文件名。

  in列表是可选的,如果不用它,for循环使用命令行的位置参数。

#例如,顺序输出当前列表中的数字:
for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

#顺序输出字符串中的字符:
#!/bin/bash
for str in This is a string
do
    echo $str
done

 

上一篇:2021全国大学生数学建模B题 乙醇偶合制备 C4 烯烃


下一篇:脚本安装编译安装nginx服务(适用于所有版本)