Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中根据字典外观顺序比较字符串_Bash_Shell - Fatal编程技术网

在bash中根据字典外观顺序比较字符串

在bash中根据字典外观顺序比较字符串,bash,shell,Bash,Shell,我很难想出如何做到这一点: 在我的硬件中,我需要比较两个可能也包含数字的字符串, 以下是一些例子: A>a ad>abc Abc>U2 当我在变量中有两个字符串时,有什么方法可以这样做吗 要比较字符串,通常的方法是[[[$var1

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

A>a
ad>abc
Abc>U2

当我在变量中有两个字符串时,有什么方法可以这样做吗

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

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

我相信您想要的是:

if [[ "$string1" < "$string2" ]]; 
then
   comparison='<' ; 
else
   if [[ "$string1" < "$string2" ]]; 
   then 
      comparison='>'
   else
      comparison='='
   fi
fi
echo "${string1}${comparison}${string2}"
(如果您只需要特定测试的特定区域设置,请参见:LC_-COLLATE、LC_-LANG等。但是更改LC_-ALL会更改它们)

您可以通过以下方式了解受支持(已安装)的区域设置:

locale -a
以及当前使用的区域设置:

locale

我相信你想要的是:

if [[ "$string1" < "$string2" ]]; 
then
   comparison='<' ; 
else
   if [[ "$string1" < "$string2" ]]; 
   then 
      comparison='>'
   else
      comparison='='
   fi
fi
echo "${string1}${comparison}${string2}"
(如果您只需要特定测试的特定区域设置,请参见:LC_-COLLATE、LC_-LANG等。但是更改LC_-ALL会更改它们)

您可以通过以下方式了解受支持(已安装)的区域设置:

locale -a
以及当前使用的区域设置:

locale

此外,至少在ASCII排序序列中,
a在询问我的老师它的所谓词典顺序后,你知道吗?choroba的回答将产生两个字符串的词典比较,对于当前语言环境使用的任何词汇顺序-对于ASCII语言环境,大写拉丁字母后跟小写字母(ABCD…ABCD…)对于其他一些地区,大写字母被视为等同于小写字母(AaBbCcDd…),而其他地区的字母顺序不同(ABCD…vs ABGD…)或者有更少或更多的字母和/或带有各种变音符号的字母,或者甚至可能不使用拉丁字母……此外,至少在ASCII排序序列中,
a在问我的老师它被称为词典顺序后,有什么想法吗?choroba的回答将产生两个字符串的词典比较,不管是什么词汇顺序r您当前的语言环境使用-对于ASCII语言环境,大写拉丁字母后跟小写字母(ABCD…ABCD…)。对于其他一些语言环境,大写字母被视为等同于小写字母(AaBbCcDd…);而其他语言环境的字母顺序不同(ABCD…vs ABGD…)或者有更少或更多的字母和/或带有各种变音符号的字母,或者甚至可能不使用拉丁字母表。。。