我无法将混合字符串的回显回显到文件中

我无法将混合字符串的回显回显到文件中

这条线本身就按预期工作

(echo '@$X!'; sleep 3; echo '@$X!')

我需要使用以下命令将此行插入文件中,但不起作用。'edecho命令必须是可执行的。

echo "(echo '@$X!'; sleep 3; echo '@$X!') | mycmd" >> a

它不断返回此错误

sh: !': event not found

我知道在单引号之间回显字符串会阻止任何变量替换或字符转义,但我无法应用它来解决这个问题!

通过命令来执行此操作,因为我将通过工具发送它,所以使用编辑器编辑文件对我来说不是一个可用的选项。

答案1

更新

我的第一个想法是错误的。明确引用 bang ( !) 似乎有效:

echo "(echo '@$'\!; sleep 3; echo '@$'\!) | mycmd" > a

相关内容