控制结构
shell具有.般高级程序设计语言所具有的控制结构和其他复杂功能,如if语句、caR语句、循环结构、函数等。其实在shell中,这些控制结构也被称为“命令”,为了符合程序设计的习惯,才把它们称为语句。
if语句
if语句用于条件控制结构中,其-般格式为:
if测试条件; then 命令表1; else命令表2; fi
或者
if测试条件
then
命令表1
else
命令表2
fi
其中,if、 then、else和fi是关键字。命令表1和命令表2可以是单条命令或者多条命令。
例如:
iftest-f “$1”
then echo “$1 is an ordinary file.”
else echo “$1 is not an ordinary file.”
fi
其执行过程是,先进行“条件测试”,若测试结果为真,则执行then后的“命令表1”中的各条命令,否则执行else后的“命令表2” 中的各条命令。上面的语句先执行test命令——测试$1是否是一个已存 在的普通文件,若是,则显示“xxx($1的值)is an odianyfle", 否则显示“xxx ($1的值)is not an ordinary file."
计语句中,else 部分可以默认。例如:
if test -f “$1"
then echo"$1is an ordinary file."
首先测试$1是否为已有的普通文件。若是,则显示相应信息,否则退出if语句。
if语句的else 部分还可以是else⁻if结构,此时用关键字elif代替else if.例如: