test的用法
数值
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
a=50
b=30
if test $[a] -eq $[b]
then
echo "相等"
else
echo "不相等"
fi
if经常与test一块来用,下面多举几个例子:
a=50
b=30
sum=$[a+b]
echo "$sum"
注意:这里进行的简单运算可以不借助expr工具,等号两边不能有空格
字符串的例子:
a="abc"
b="cba"
if test $a = $b
then
echo '两个字符串相等!'
else
echo '两个字符串不相等!'
fi
文件的例子:文件命令指令参考上一篇
cd /usr/local/all
if test -e ./nginx-1.12.0.tar.gz
then
echo '文件已存在!'
else
echo '文件不存在!'
fi
与( -a )、或( -o )、非( ! )优先级如下:
!>-a>-o
举个栗子:
cd /usr/local/all
if test -e ./nginx-1.12.0.tar.gz -o -e ./elasticsearch-5.0.1.tar.gz
then
echo '一个文件!'
else
echo '两个文件都不存在!'
fi
最容易出错的地方就是空格,回顾前面的:
1.定义简单的运算等号两边不能加空格
2.[]里面的有变量需要空格,如:[ $a -eq $b ]
3.多条件中括号要用双层