bash 脚本编程五 条件语句
bash 脚本编程五 条件语句
结合前面的例子,来写一个条件表达式。如果第一个参数没有,则输出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
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 |
评论暂时关闭