我想在新行上打印从 1 到 99 的每个奇数,为什么这在 Bash 中不起作用?
IFS=$'\n'; echo {1..99..2}
它在同一行打印所有数字,IFS 不应该改变这种行为吗?
答案 0 :(得分:3)
试试这个:
echo {1..99..2} | tr ' ' '\n'
您可以使用 seq 获得相同的结果:
seq 1 2 99
或者,正如 Aydin 先生所建议的,可以使用 printf 使用内置的单个 shell 来完成:
printf '%s\n' {1..99..2}
IFS 控制输入解析,以及 bash 如何检测输入中的新行。这里不重要。