【发布时间】:2020-05-26 23:01:00
【问题描述】:
我需要按字典顺序比较 bash 脚本中的字符串。问题是 bash 似乎完全忽略了 '_' 字符,就好像它们根本不存在一样。在 ascii 代码表中,“_”位于大写字母和小写字母之间,因此我假设 A-Z
1 $ if [[ "ab" < "a_" ]]; then echo 1; fi
2 $ if [[ "ab" < "a_a" ]]; then echo 1; fi
3 $ if [[ "ab" < "a_c" ]]; then echo 1; fi
1
4 $ if [[ "aZ" < "a_" ]]; then echo 1; fi
$
命令#3 也应该为假,因为'_' 'Z'。
对我来说唯一合乎逻辑的解释是 '_' 字符在 Debian bash 中被简单地省略了,所以 "ab" false, "ab" false, "ab" true, "aZ" false 是真正被评估的。
在 Debian bash 中有什么方法可以比较这些字符串,将它们的 '_' 字符视为它们的 ascii 代码所建议的那样?
谢谢
【问题讨论】:
-
bash 没有省略任何内容,它与当前的语言环境有关
标签: bash