防止在反引号中包含的表达式在heredocs中进行评估

时间:2012-10-29 12:58:13

标签: bash shell

我有这样的文字:

foo bar
`which which`

如果我使用heredoc这样做,我会得到一个空白文件:

➜  ~  echo <<EOT > out
heredoc> foo bar
heredoc> `which which`
heredoc> EOT
➜  ~  cat out

➜  ~  

我该怎么做?

修改

哦对不起,我打算做cat。问题是它将它写入文件:which: shell built-in command,即评估反推。没有评估的任何方法吗?

使用cat,我得到了

➜  ~  cat <<EOT > out
heredoc> foo bar
heredoc> `which which`
heredoc> EOT
➜  ~  cat out
foo bar
which: shell built-in command
➜  ~  

我不希望评估which which

1 个答案:

答案 0 :(得分:32)

引用标签以防止反引号被评估。

$ cat << "EOT" > out
foo bar
`which which`
EOT

$ cat out
foo bar
`which which`