【发布时间】:2017-02-17 00:46:41
【问题描述】:
我正在尝试执行以下命令:
`sed 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg`
但是我收到了这个错误
-bash: ###############################################################################: command not found
如果我尝试在没有反引号的情况下运行它,该命令将起作用。
我尝试了以下方法:
`sed 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg` 2>&1
`sed 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg`> /dev/null
但是没有用。
【问题讨论】:
-
您正在尝试将
sed的输出作为命令运行 - 这是预期的。为什么需要后记号? -
@codeforester 嗨,我正在尝试在 shell 脚本中执行此操作,所以我要添加反引号。
-
只有当你想对输出做一些事情时才需要反引号,比如将它存储到一个变量中。
-
您对
sed脚本周围的反引号所做的是告诉shell 执行sed命令的输出,就好像它是一个shell 脚本一样。它不是一个 shell 脚本,所以 shell 很快就会不高兴。 -
好吧,您的代码正在尝试运行修改后的配置,就好像它是由 shell 命令组成的一样。