0

我很难弄清楚如何做到这一点:在我的硬件中,我需要比较两个可能也包含数字的字符串,以下是一些示例:

A>a
ad>abc
Abc>U2

当我在变量中有两个字符串时有什么办法吗?!

4

2 回答 2

2

要比较字符串,通常的方法是[[ $var1 < $var2 ]].

于 2013-05-30T14:18:38.423 回答
1

我相信你想要这样的东西:

if [[ "$string1" < "$string2" ]]; 
then
   comparison='<' ; 
else
   if [[ "$string1" < "$string2" ]]; 
   then 
      comparison='>'
   else
      comparison='='
   fi
fi
echo "${string1}${comparison}${string2}"

但请注意,这在很大程度上取决于您的语言环境!

我建议在脚本的第一行添加更改语言环境以确保您使用正确的语言环境。例如:

LC_ALL='C'

(另请参阅:LC_COLLATE、LC_LANG 等,如果您只需要特定语言环境进行特定测试。但更改 LC_ALL 会全部更改)

您可以通过以下方式了解受支持(已安装)的语言环境:

locale -a

和当前使用的语言环境:

locale
于 2013-05-30T16:22:02.950 回答