比较两个字符串的命令

比较两个字符串的命令

我需要比较两个字符串并忽略内容的大小写。如果 [ $first != $second ]。我可以向此命令添加任何内容,以便比较忽略大小写。

答案1

在 bash 中,你可以轻松地执行大小写转换,例如 if var="vAlUe"then

$ echo "${var^^}"
VALUE

尽管

$ echo "${var,,}"
value

您可以使用此功能通过将两个参数转换为相同的大小写来使比较不区分大小写,即

if [ "${first,,}" == "${second,,}" ]; then
  echo "equal"
fi

或者

if [ "${first^^}" == "${second^^}" ]; then
  echo "equal"
fi

另一种方法是使用 bashnocasematch选项(感谢@Tshilidzi_Mudau),尽管这似乎只适用于[[ ... ]]扩展测试运算符:

$ first=abc; second=ABC
$ (shopt -s nocasematch; if [[ "$first" == "$second" ]]; then echo "Match"; else echo "No match"; fi)
Match

$ (shopt -s nocasematch; if [ "$first" == "$second" ]; then echo "Match"; else echo "No match"; fi)
No match
~$ 

相关内容