在我看来,这里字符串的结尾是换行符。我意识到我错了:
$ cat <<< hello world
cat: world: No such file or directory
什么可以表示此处字符串的结束?
答案1
<<< word
在哪里A单词是被 shell 视为一个单元的字符序列,由空格分隔。这可以是单个常规单词 ( hello
)、单引号或双引号字符串 ( 'hello world'
, "hello world"
)、参数或命令替换 ( $foo
, $(...)
)、用反斜杠转义符组装的内容或这些组合的组合。
您可以在一行上有多个此处文档或此处字符串,因此行尾不能用作仅有的分隔符,但如果还没有的话,它将在那里结束(除非换行符是反斜杠转义的)。
你会得到你想要的效果
cat <<<'hello world'
或者
cat <<<hello\ world
答案2
从手册中:
[n]<<<单词
结尾是一个词,而不是多个词。因此,在此示例中,第一个单词是hello
and 终止此处字符串。下一个单词是world
,它只是 的一个普通参数cat
,并cat
假设它是要读取的文件名。
你可以这样写得更清楚:
$ cat world <<< hello