在Bash的内置“读取”命令中,有没有办法让它接受空格作为输入

时间:2011-12-09 21:58:48

标签: bash shell scripting

我的Google-fu在这里让我失望。

如果我有一个“hello world”的标记,然后将它用作bash的内置读取的stdin,我将截断尾随空格。有没有办法保留它?

1 个答案:

答案 0 :(得分:6)

原来你必须将变量$ IFS设置为换行符。这就是我所做的,它起作用了

$ read x
hello world 
$ echo $x"testing"
hello worldtesting
$ IFS='\n'
$ read x
hello world 
$ echo $x"testing"
hello world testing

手册说,我引用,哼哼:

  

如果IFS的值不是默认值,则序列为   空格字符“space”和“Tab”在开头被忽略   只要空白字符在   IFS的值(IFS空白字符)。

资料来源:info on read itself& info on word splitting