举一个非常简单的小例子来说明 Shell Scripts中if语法的使用。
提示用户输入名字,如果用户没有输入任何信息,则提示用户一定要输入名字,如果用户输入的是hello,程序要给用户回复“hello”,如果既不是空串,也不是hello,则认为用户输入了名字,则提示欢迎XXX。
#!/bin/bash
# 接收用户的输入,并把用户的输入赋值给 name 变量
read -p "Please input your name : " name
if [ "$name" == "" ]; then
echo "必须要输入一个字符串"
elif [ "$name" == "hello" ]; then
echo "Hello"
else
echo "Welcome $name"
fi # 结束if
# 退出标识位,表示正常退出
exit 0
read 是接收用户的输入,-p 参数是可以给用户以提示,也就是后面跟的字符串 “Please ...” 这时候会等待用户的输入,当用户输入了数据之后,会把数据读到 name 变量中。
if是关键字,后面跟的是一对[],中括号在shell scripts中称之为条件表达式。这里要注意,if_[_condition_]; 注意下划线的地方一定要有空格。另外一定要注意不要忘记了后面的分号。if后面可以跟多个中括号的条件表达式,只在最后一个中括号后加上分号。
如判断年龄在 大于等于18 并且小于等于30的表达式如下:
[ $age -ge 18 ] && [ $age -le 30 ];
分号后面跟一个空格,是then关键字。另起一行,缩进,表示条件成立要执行的语句。
有多个条件,可以使用 elif 注意,这里并不是 else if
当所有条件不满足时,可以使用else ,else 后面不跟 then
最后当分支结构结束,以反的if,也就是 fi结束。
注意,shell scripts中的;具有特殊含义,语句结束不要加;