test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test。
test 命令有很多选项,可以进行数值、字符串和文件三个方面的检测。
Shell test 命令的用法为:
test expression
当 test 判断 expression 成立时,退出状态为 0,否则为非 0 值。
test 命令也可以简写为[]
,它的用法为:
[ expression ]
注意[]
和expression
之间的空格,这两个空格是必须的,否则会导致语法错误。[]
的写法更加简洁,比 test 使用频率高。
test 和 [] 是等价的,后续我们会交替使用 test 和 [],以让读者尽快熟悉。
在《Shell if else》中,我们使用 (()) 进行数值比较,这节我们就来看一下如何使用 test 命令进行数值比较。
- #!/bin/bash
- read age
- if test $age -le 2; then
- echo "婴儿"
- elif test $age -ge 3 && test $age -le 8; then
- echo "幼儿"
- elif [ $age -ge 9 ] && [ $age -le 17 ]; then
- echo "少年"
- elif [ $age -ge 18 ] && [ $age -le 25 ]; then
- echo "成年"
- elif test $age -ge 26