📅  最后修改于: 2023-12-03 15:34:58.129000             🧑  作者: Mango
在 Shell 脚本中,测试命令是一种非常有用的工具。它们可以用来检查变量是否存在、变量的类型、文件是否存在以及比较变量的值等等。
本文将介绍 Shell 脚本中常见的测试命令以及它们的用法。以下均为常用的 Shell 测试命令。
test
命令使用 test
命令可以检查一个表达式是否成立。表达式可以是文件或变量的比较、算术比较、字符串比较等。常见的用法有以下几种:
# 判断文件是否存在
if test -e /path/to/file; then
echo "文件存在"
fi
# 判断文件是否可读
if test -r /path/to/file; then
echo "文件可读"
fi
# 判断文件是否可写
if test -w /path/to/file; then
echo "文件可写"
fi
# 判断文件是否可执行
if test -x /path/to/file; then
echo "文件可执行"
fi
-lt
、-le
、-eq
、-ne
、-gt
、-ge
等运算符):if test $a -eq $b; then
echo "a 等于 b"
fi
=
、!=
、-z
、-n
等运算符):if test $str1 = $str2; then
echo "str1 和 str2 相等"
fi
test
命令的另一种写法是使用方括号 [ ]
,两者完全等价。
echo
命令echo
命令为在终端输出信息的常用命令。其常用的选项有以下几种:
-n
参数:不输出结尾的换行符。echo -n "不换行"
-e
参数:支持转义字符的输出。echo -e "换行\n制表符\t倒退\r"
expr
命令expr
命令是计算表达式的常用命令。可以进行加减乘除、比较、取余等运算。
a=`expr 1 + 2`
echo $a
b=`expr 3 \* 4`
echo $b
c=`expr 6 / 2`
echo $c
if [ `expr 1 == 1` -eq 1 ]; then
echo "1 等于 1"
fi
if [ `expr 1 != 2` -eq 1 ]; then
echo "1 不等于 2"
fi
[ ]
命令[ ]
命令与 test
命令是等价的,在 Shell 脚本中经常用于条件控制。常见用法如下:
if [ -z "$str" ]; then
echo "str 是空字符串"
fi
if [ "$str1" = "$str2" ]; then
echo "str1 和 str2 相等"
fi
if [ -e /path/to/file ]; then
echo "文件存在"
fi
test
与 [ ]
比较在使用 test
命令和 [ ]
命令时,应该记住以下几点:
test
命令和 [ ]
命令是等价的,可以互换使用。
在使用 [ ]
命令时,变量必须加双引号,防止变量为空时出错。
if [ "$var" = "value" ]; then
echo "变量 var 等于 value"
fi
[ ]
命令时,注意方括号内的空格,不要忘了 $
在方括号外。if [ "$var" = "value" ]; then
echo "变量 var 等于 value"
fi
以上就是 Shell 脚本中常见的测试命令,希望对大家有所帮助。