我编写了一个 bash 脚本来处理文件名列表(使用 glob 扩展,如for f in *),然后将该列表的一个子集输出到文件中。随后,我将这个文件的内容读入一个数组,并使用明显的<和>运算符来比较字符串,对特定文件名执行简单的二进制搜索。
考虑到我希望脚本能够在 Linux、MacOS、MinGW 等许多不同的环境中工作……(即使它使用诸如[[和stat不太便携的东西),我的问题是:
sort或额外的 bash 代码)或者 glob 扩展是否总是排序 - 在每个环境中?条件运算符是否使用与扩展(或之后sort)相同的“排序” ?
扩展或sort返回file10.txt之后file2.txt(在什么情况下?)但使用条件运算符file10.txt会在之前file2.txt?我sort会用什么选项来解决这个问题?
如果我的某些文件名是 Unicode,有什么注意事项吗?
LC_COLLATE影响上述任何一项? 我显然需要文件内容来匹配运算符的排序“方法”,以便二分搜索按预期工作......