在shell脚本中,选择结构也称分支结构,比如C类语言中的 if 和 switch语句。
if的条件
if语句基本结构:
if <条件1>
then 语句1 elif <条件2> 语句2 elif <条件...> 语句... else 语句n fi
注意if语句中并无尖括号< >。用你的条件表达式来替换掉 <条件> 这部分。
关于 then,if的条件后面都需要加一个保留字then。你也可以把它们写作同一行,但是需要注意的是要用分号来分隔,这些bash解释器才知道then不是if条件的一部分。否则会报错。
输入一个数字,并判断是否小于100
#!/bin/bash
read -p "请输入一个数字:" a if [ $a -lt 100 ] then echo "a<100" else echo "a>=100" fi
判断当前目录下一个文件是否存在,若存在判断是否为目录文件。
#!/bin/bash
read -p "请输入一个文件名:" name if [ -e $name ] then echo -n "$name存在," if [ -d $name ] then echo "并且是一个目录" else echo "但不是一个目录" fi else echo "$name不存在" fi
其他命令作为条件
#!/bin/bash
read -p "请输入一个命令:" var if which $var>/dev/null then echo "$var存在" else echo "$var不存在" fi 这个脚本,我命名为var.sh,请看它的执行结果
另外还有一点要注意。在c语言中,0为假,非0为真。而在Bash中正好相反。
当然了,除了which以外还有许多内部或外部的命令可以和 if 结构组合使用,和外部命令的无缝集成是Bash以及其他Shell强大的基础。
比如:
复制代码代码示例:
if [ -e $filename ] && rm $filename
then echo "$filaname 不存在!" fi |