测试
2019-01-12 本文已影响2人
时海观察者
[
Linux中经常使用[
来进行测试,[
是test
的符号链接。[
是一个应用程序,需要注意的是[
必须被空格包围,否则将会报错。
$ [ 1 == 1 ] && echo 2
2
if-else
if [...]
和 then
需要在不同行,但是可以使用;
来分离他们。
if [ ... ]
then
# if-code
else
# else-code
fi
if [ ... ]; then
# if-code
fi
if [ ... ]; then
# code
elif [ ... ]; then
# code
else
# code
fi
&& 和 ||
cmd1 && cmd2
:当cmd1
正常结束时,执行cmd2
cmd1 || cmd2
:当cmd1
发生错误时,执行cmd2
$ [ 1 == 1 ] && echo "1 equal 1"
1 equal 1
$ [ 1 != 1 ] || echo "1 equal 1"
1 equal 1
case
#!/bin/sh
echo "Please type something in..."
while :
do
read INPUT_STRING
case $INPUT_STRING in
hello)
echo "Hello yourself"
;;
bye)
echo "See you again"
break
;;
*)
echo "Sorry, I dont understand"
;;
esac
done
运算符
运算符 | 解释 | 示例 |
---|---|---|
-eq |
数值等于 | [ "$foo" -eq "9" ] |
-ne |
数值不等于 | [ "$foo" -ne "9" ] |
-lt |
小于 | [ "$foo" -lt "9" ] |
-le |
小于等于 | [ "$foo" -le "9" ] |
-gt |
大于 | [ "$foo" -gt "9" ] |
-ge |
大于等于 | [ "$foo" -ge "9" ] |
-z |
字符串长度为0 | [ -z "$foo"] |
-n |
字符串长度不为0 | [ -n "$foo" ] |
-nt |
更新(newer than) | [ " |
-d |
是目录 | [ -d /bin] |
-f |
是文件 | [ -f /bin/ls] |
-r |
可读 | [ -r /bin] |
-w |
可写 | [ -w /bin] |
-x |
可执行 | [ -x /bin] |