【发布时间】:2014-05-12 17:45:25
【问题描述】:
我在使用 bash 脚本时遇到了一个奇怪的问题。重现它的最小代码在这里:
#!/bin/bash
function f() {
IFS=. read a b <<<"$1"
echo "a=$a b=$b"
}
f a.b
echo "inside echo: `f a.b`"
cat <<EOT
Inside heredoc: `f a.b`
EOT
预期的输出是:
a=a b=b
inside echo: a=a b=b
Inside heredoc: a=a b=b
但我明白了:
a=a b=b
inside echo: a=a b=b
Inside heredoc: a=a.b b=
我在这里错过了什么?
更新: 我的 Mac (3.2.48) 上的 bash 按预期工作。 我的 debian stable(4.2.37(1)-release)上的 bash 给出了所描述的奇怪。
【问题讨论】: