Answers:
只需echo
在函数中引用:
function consoleWriteLine() {
echo "$*" >&2
}
echo
只是注意到通过空间和打印他们分开被分隔的多个参数的单一空间。看到:
$ echo a b c
a b c
$ echo a b c
a b c
$ echo "a b c"
a b c
在最后一个示例中,字符串a b c
是一个单个参数,并且echo
按原样进行编辑。
$*
,而且$@
还专门创建了该变体以在引号时扩展成单独的单词:"$@"
可以是多个参数,"$*"
总是一个。echo
是少数没有区别的命令之一。
我自己遇到了这个问题,
按照此博客,您需要更改IFS,因为默认情况下它包含空格,因此将“ xxx yyy zzzz”视为3个字符串,它们之间有空格。
IFS='\n'
该命令之前的命令将对其进行修复,并取消设置IFS以删除更改
unset IFS
consoleWriteLine
。第二次echo
输入空格时,需要再次用空格将引号引起来。我从没想过你可以把引号括起来$*
。