如何在可移植脚本中使用 linux bash“sort”命令?

如何在可移植脚本中使用 linux bash“sort”命令?

我正在编写一个 bash 脚本,想让它可移植,以便在其他计算机上获得相同的结果。

这个问题我了解到系统设置(例如语言设置和可能的其他变量)会影响完全相同的输入文件和参数上的完全相同的排序命令的结果。

所以我的问题是如何使用 sort 并确保在其他系统中获得预期结果?我应该考虑哪些系统变量?输入LC_ALL=Cb 能解决所有问题吗?

答案1

是的,LC_ALL=C将解决您的可移植性问题(它将在所有系统上表现相同)

但请注意,这并不一定意味着它会这样做你想要什么。“C”语言环境将按字节值排序。如果您的所有数据都是纯 ASCII,那么这没问题。但是,如果您的数据可能包含其他一些字符集(例如 ISO-8859-* 系列中的其他语言、KOI-R,或者天哪,多字节字符集,如 UTF-16、UTF-8 等),那么它将严重崩溃。

但它仍然是便携式的,因为它很容易坏掉同样地在所有平台上。

相关内容