📜  Shell 脚本 - 测试命令(1)

📅  最后修改于: 2023-12-03 15:34:58.129000             🧑  作者: Mango

Shell 脚本 - 测试命令

在 Shell 脚本中,测试命令是一种非常有用的工具。它们可以用来检查变量是否存在、变量的类型、文件是否存在以及比较变量的值等等。

本文将介绍 Shell 脚本中常见的测试命令以及它们的用法。以下均为常用的 Shell 测试命令。

test 命令

使用 test 命令可以检查一个表达式是否成立。表达式可以是文件或变量的比较、算术比较、字符串比较等。常见的用法有以下几种:

  1. 文件表达式(判断文件是否存在、是否可读写等):
# 判断文件是否存在
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
  1. 比较数字(可以使用 -lt-le-eq-ne-gt-ge 等运算符):
if test $a -eq $b; then
  echo "a 等于 b"
fi
  1. 比较字符串(可以使用 =!=-z-n 等运算符):
if test $str1 = $str2; then
  echo "str1 和 str2 相等"
fi

test 命令的另一种写法是使用方括号 [ ],两者完全等价。

echo 命令

echo 命令为在终端输出信息的常用命令。其常用的选项有以下几种:

  1. -n 参数:不输出结尾的换行符。
echo -n "不换行"
  1. -e 参数:支持转义字符的输出。
echo -e "换行\n制表符\t倒退\r"
expr 命令

expr 命令是计算表达式的常用命令。可以进行加减乘除、比较、取余等运算。

  1. 计算表达式:
a=`expr 1 + 2`
echo $a

b=`expr 3 \* 4`
echo $b

c=`expr 6 / 2`
echo $c
  1. 比较表达式:
if [ `expr 1 == 1` -eq 1 ]; then
  echo "1 等于 1"
fi

if [ `expr 1 != 2` -eq 1 ]; then
  echo "1 不等于 2"
fi
[ ] 命令

[ ] 命令与 test 命令是等价的,在 Shell 脚本中经常用于条件控制。常见用法如下:

  1. 判断字符串是否为空:
if [ -z "$str" ]; then
  echo "str 是空字符串"
fi
  1. 判断字符串是否相等:
if [ "$str1" = "$str2" ]; then
  echo "str1 和 str2 相等"
fi
  1. 判断文件是否存在:
if [ -e /path/to/file ]; then
  echo "文件存在"
fi
test[ ] 比较

在使用 test 命令和 [ ] 命令时,应该记住以下几点:

  1. test 命令和 [ ] 命令是等价的,可以互换使用。

  2. 在使用 [ ] 命令时,变量必须加双引号,防止变量为空时出错。

if [ "$var" = "value" ]; then
  echo "变量 var 等于 value"
fi
  1. 在使用 [ ] 命令时,注意方括号内的空格,不要忘了 $ 在方括号外。
if [ "$var" = "value" ]; then
  echo "变量 var 等于 value"
fi

以上就是 Shell 脚本中常见的测试命令,希望对大家有所帮助。