为什么我在 Freebsd 中不能这样做echo '#!/bin/sh
?它只会生成:
/bin/sh:未找到事件
我尝试了所有引号组合,但都无济于事。我手头只有 Freebsd 8.4。
答案1
尽管错误消息指向了/bin/sh
,但问题在于您的 shell 使用!
将历史记录插入到命令行中,而引号无法逃脱 的魔力!
。因此,您需要使用 明确地对 进行!
转义\
。
例如:
echo #\!/bin/sh
答案2
您可以在执行该命令时暂时关闭历史记录扩展:
$ echo !foo
bash: !foo: event not found
$ set +H; echo !foo; set -H
!foo