bash shell 字符串比较

我们可以使用以下方式之一进行比较字符串:

  • string1 = string2 检查string1是否与string2相同。
  • string1 !=string2 检查string1是否与string2不同。
  • string1 < string2 检查string1是否小于string2。
  • string1 > string2 检查string1是否大于string2。
  • -n string1 检查string1长度是否大于零。
  • -z string1 检查string1长度是否为0。

示例:

#!/bin/bash
user="onitroad"
if [ $user = $USER ]; then
	echo "The user $user  is the current logged in user"
fi

有一个棘手的问题是大于和小于号。
必须要转义,例如:

#!/bin/bash
v1=text
v2="another text"
if [ $v1 \> $v2 ]; then
	echo "$v1 is greater than $v2"
else
	echo "$v1 is less than $v2"
fi

但是又会报错:

./myscript: line 5: [: too many arguments

所以还需要修改成:(添加双引号)

#!/bin/bash
v1=text
v2="another text"
if [ $v1 \> "$v2" ]; then
	echo "$v1 is greater than $v2"
else
	echo "$v1 is less than $v2"
fi
日期:2020-07-15 11:16:51 来源:oir作者:oir