bash 中 read 的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
pangding
帖子: 48
注册时间: 2011-03-01 23:14
送出感谢: 5 次
接收感谢: 0

bash 中 read 的问题

#1

帖子 pangding » 2011-03-01 23:27

呵呵,第一帖,希望能得到大家的关注~ :em02

前几天写脚本,用 read 处理管线的上下文,遇到一个挺令我意外的 BUG。
我现在写了一个能体现问题所在的脚本。脚本和运行結果如下:

代码: 全选

$ 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
$ 

而我预期的結果应该是这样的:

代码: 全选

abc def ghi, abc def ghi
jkl mno pqr, jkl mno pqr
差距挺大,为什么会这样?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: bash 中 read 的问题

#2

帖子 eexpress » 2011-03-02 10:43

空格分割的。你要加""包括
● 鸣学
pangding
帖子: 48
注册时间: 2011-03-01 23:14
送出感谢: 5 次
接收感谢: 0

Re: bash 中 read 的问题

#3

帖子 pangding » 2011-03-02 10:58

哦,原来如此。呵呵,谢谢。
回复

回到 “Shell脚本”