如何防止 bash $ 替换?

5 linux bash sed unix-shell

我试图在下面保留 $if 并
希望以下输出
$if

bash 通过执行
$ 替换 来妨碍

$ sed -e 's:\\$:\\$:g' <<ENDOFFILE  
> $if  
> ENDOFFILE  
Run Code Online (Sandbox Code Playgroud)

或者

$ tr '$' '\$' <<ENDOFFILE  
> $if  
> ENDOFFILE  
Run Code Online (Sandbox Code Playgroud)

有没有办法将 $keywords 保留
到 stdout 而不
在 stdin 中显式地将它们转义出来?

我应该在尝试之前切换到另一个 shell 吗?

Mar*_*ner 7

我不确定您要做什么,但 bash 正在您的 here 文档中执行参数扩展,因为分隔符ENDOFFILE. 如果您将其更改为'ENDOFFILE'bash 将不会扩展。

  • @Dragos:这是[设计]。如果您查看“man bash”,您会发现它是一个已记录的功能。 (2认同)