首页 > 代码库 > 结构化命令

结构化命令

  shell按照出现的次序来处理shell脚本中的每个单独命令。

if-then语句

if command
then
    commands
fi

bash shell的if语句会运行if行定义的那个命令。如果该命令的退出状态码是0,位于then部分的命令就会被执行。

如果该命令的退出状态码是其他什么值,那then部分的命令就不会被执行,bash shell会继续执行脚本中的下一个命令。

#!/bin/bash
if asdfg
then
    echo "it did not worked"
fi
echo "we are outside of the if statement"

在then部分,你可以用多个命令。

#!/bin/bash
testuser=liuxj
if grep $testuser /etc/passwd
#if asdfg
then
    #echo "it did not worked"
    echo The bash files for user $testuser are:
    ls -a /home/$testuser/.b*
fi

 

if-then-else语句

if command
then
    commands
else
    commands
fi

当if语句中的命令返回退出状态码0时,then部分中的命令会被执行,当if语句中的命令返回非零退出状态码时,bash shell会执行else部分中的命令。

 

嵌套if

elif会通过另一个if-then语句来延续else部分:

if command1
then
    commands
elif    command2
then
    more commands
fi

 

elif语句行提供了另外一个要测试的命令,类似于原始的if语句。如果elif后命令的退出状态码是0,则bash会执行第二个then语句部分的命令。

注意:你可以将多个elif语句串起来,形成一个大的if-then-elif嵌套组合。

if command1
then
    command set 1
elif command2
then
    command set 2
elif command3
then
    command set 3
elif command4
then
    command    set 4
fi

 

结构化命令