结合前面的例子,来写一个条件表达式。如果第一个参数没有,则输出no parameter,否则输出第一个参数。
#!/bin/bash if [ -n "$1" ] then echo "1st parameter: $1" else echo "no parameter" fi
输入带参数命令:$ ./test.sh 'this is a test' 1st parameter: this is a test
输入无参数命令:$ ./test.sh no parameter
先解释一下条件语句:if [ ... ]
then
...
else
...
fi
...表示可以编写语句的地方。
必须要用fi结束整个条件语句。
注意[ ... ] 方括号要用空格和其他字符分开。
-n 是一个操作符,判断后面的参数是否长度为0,如果不为0,返回true,为0则返回false.
其中复杂的条件表达式如下:
if condition1 then statement1 statement2 .......... elif condition2 then statement3 statement4 ........ elif condition3 then statement5 statement6 ........ fi
-n 之外,还有其他运算符可供使用:
operator
produces true if...
number of operands
-n
operand non zero length
1
-z
operand has zero length
1
-d
there exists a directory whose name is operand
1
-f
there exists a file whose name is operand
1
-eq
the operands are integers and they are equal
2
-neq
the opposite of -eq
2
=
the operands are equal (as strings)
2
!=
opposite of =
2
-lt
operand1 is strictly less than operand2 (both operands should be integers)
2
-gt
operand1 is strictly greater than operand2 (both operands should be integers)
2
-ge
operand1 is greater than or equal to operand2 (both operands should be integers)
2
-le
operand1 is less than or equal to operand2 (both operands should be integers)
2