控制结构
shell具有般高级程序设计语言所具有的控制结构和其他复杂功能,如if语句、case语句、循环结构、函数等。 其实在shell 中,这些控制结构也被称为命令为了符合程序设计的习惯,才把它们称为语句。
if 语句
if语句用于条件控制结构中,其般格式为:
if测试条件; then 命令表1; else 命令表2; fi
或者
if测试条件
then 命令表 1
else 命令表2
fi
其中,if、then、else 和f是关键字。命令表1和命令表2可以是单条命令或者多条命令。例如:
if test -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 ordinaryfle”,否则显示“xxx ($1的值) is not an ordinaryfile.”
if语句中,else 部分可以默认。例如:
if test -f “$1"
then echo “$1 is an ordinary file."
fi
首先测试SI是否为已有的普通文件。若是, 则显示相应信息,否则退出if语句。if语句的else部分还可以是es-if结构,此时用关键字elif 代替elseif.例如:
if test -f “$1”
then pr $1
elif test-d “$1”
then(cd $1 ; pr*)
else echo"$1 is neither a file nor a directory. ”
fi
其功能是,若$1 的值是普通文件名,那么就打印该文件内容:若是目录名,则把它作为工作目录,并打印其下属的所有文件,或者显示出错信息。
通常,if的测试部分是利用test命令实现的。其实,条件测试可以利用一般命令执行成功与否来判断。若命令正常结束,则表示执行成功,其返回值为0,条件测试为真;否则,其返回值不为非0,条件测试就为假。 所以if语句的更一般形式如下:
if命令表 1
then命令表 2
else命令表 3
其中,各命令表可以由条波多条合令组成。 如果“命令农1”由多条金令组成,事么测试条件是以其中最后条命令是否执行成功为准的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)