bash 中 read 的问题
前几天写脚本的时候,用 read 处理管线的上下文时发现了一个挺令我意想不到的 BUG,虽然后来用 sed 代替了。不过还是想弄清楚是怎么回事。脚本和結果如下:
$ cat shtest.sh
#! /bin/bash
while read abc ; do
printf "%s, %s\n" $abc $abc
done <<- EOF
abc def ghi
jkl mno pqr
EOF
$ ./shtest.sh
abc, def
ghi, abc
def, ghi
jkl, mno
pqr, jkl
mno, pqr
$
#! /bin/bash
while read abc ; do
printf "%s, %s\n" $abc $abc
done <<- EOF
abc def ghi
jkl mno pqr
EOF
$ ./shtest.sh
abc, def
ghi, abc
def, ghi
jkl, mno
pqr, jkl
mno, pqr
$
我预期的結果应该是这个样子:
abc def ghi, abc def ghi
jkl mno pqr, jkl mno pqr
jkl mno pqr, jkl mno pqr
差距还是比较大的。为什么会这样?
[ 本帖最后由 pangding 于 2011-2-28 20:16 编辑 ]