小编Pao*_*olo的帖子

使用条件运算符时的排序顺序是什么?

我编写了一个 bash 脚本来处理文件名列表(使用 glob 扩展,如for f in *),然后将该列表的一个子集输出到文件中。随后,我将这个文件的内容读入一个数组,并使用明显的<>运算符来比较字符串,对特定文件名执行简单的二进制搜索。

考虑到我希望脚本能够在 Linux、MacOS、MinGW 等许多不同的环境中工作……(即使它使用诸如[[stat不太便携的东西),我的问题是:

  1. 我是否需要对文件内容进行排序(使用sort或额外的 bash 代码)或者 glob 扩展是否总是排序 - 在每个环境中?
  2. 条件运算符是否使用与扩展(或之后sort)相同的“排序” ?

    扩展或sort返回file10.txt之后file2.txt(在什么情况下?)但使用条件运算符file10.txt会在之前file2.txt?我sort会用什么选项来解决这个问题?

  3. 如果我的某些文件名是 Unicode,有什么注意事项吗?

  4. 使用特定版本的 bash 是否有任何问题?
  5. 是否LC_COLLATE影响上述任何一项?

我显然需要文件内容来匹配运算符的排序“方法”,以便二分搜索按预期工作......

bash shell-script sort wildcards

5
推荐指数
1
解决办法
880
查看次数

标签 统计

bash ×1

shell-script ×1

sort ×1

wildcards ×1