bash 脚本编程五 条件语句


结合前面的例子,来写一个条件表达式。如果第一个参数没有,则输出no parameter,否则输出第一个参数。

  1. #!/bin/bash  
  2. if [ -n "$1" ]  
  3. then  
  4.     echo "1st parameter: $1"  
  5. else  
  6.     echo "no parameter"  
  7. fi  
输入带参数命令:
  1. $ ./test.sh 'this is a test'  
  2. 1st parameter: this is a test  
输入无参数命令:
  1. $ ./test.sh  
  2. no parameter  
先解释一下条件语句:

if [ ... ]

then

  ...

else

  ...

fi


...表示可以编写语句的地方。

必须要用fi结束整个条件语句。

注意[ ... ] 方括号要用空格和其他字符分开。


-n 是一个操作符,判断后面的参数是否长度为0,如果不为0,返回true,为0则返回false.

其中复杂的条件表达式如下:

  1. if condition1  
  2. then  
  3.     statement1  
  4.     statement2  
  5.     ..........  
  6. elif condition2  
  7. then  
  8.     statement3  
  9.     statement4  
  10.     ........      
  11. elif condition3  
  12. then  
  13.     statement5  
  14.     statement6  
  15.     ........      
  16.   
  17.   
  18. 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

相关内容