【发布时间】:2017-10-11 20:49:31
【问题描述】:
来自this 的回答我正在尝试使用点作为小数分隔符输出一个数字序列。
这行得通:
$ LANG=en_US seq 0.1 0.1 0.8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
$ LANG=en_US seq 0.1 0.1 1.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
但这不是:
$ LANG=en_US seq 0.1 0.1 0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0,9
为什么?我该如何解决?
【问题讨论】:
-
它给了我正确的结果!!您使用的是哪个版本的 seq?
-
seq不是 bash 的一部分——它是您的操作系统供应商可能会或可能不会提供的外部工具,并且由于它不是 POSIX 标准化的,因此无法保证它应该或应该采取哪种行为'不执行。也许这应该被标记为unix? -
(另外,因为它是由您的操作系统供应商提供的,所以您确实需要在问题中指定该操作系统,以便让人们有合理的机会重现手头的行为)。
-
顺便说一句,你设置
LC_ALL=C而不是LANG=en_US会有什么行为?如果这样可以解决问题,您将需要查看非LANG语言环境变量。 -
@CharlesDuffy
LC_ALL=C解决了这个问题。谢谢!