从帮助测试:
STRING1 > STRING2 True if STRING1 sorts after STRING2 lexicographically.
在内部,bash或者使用strcoll()或strcmp():
else if ((op[0] == '>' || op[0] == '<') && op[1] == '\0') { if (shell_compatibility_level > 40 && flags & TEST_LOCALE) return ((op[0] == '>') ? (strcoll (arg1,arg2) > 0) : (strcoll (arg1,arg2) < 0)); else return ((op[0] == '>') ? (strcmp (arg1,arg2) > 0) : (strcmp (arg1,arg2) < 0)); }
后者实际上比较了ASCII代码,前者(当启用区域设置时使用)执行更具体的比较,适合于在给定的区域设置中进行排序.