在bash脚本中运行nohup时出错

时间:2012-10-26 19:23:21

标签: bash shell sass nohup

我的bash / nohup体验非常有限,所以我可能会犯一个基本错误。

我正在启动一个后台文件监视器。 (如果重要的话,Sass是一个CSS预处理器,它可以监视源文件,并在检测到更改时自动将它们编译成CSS。)

当我在shell提示符下输入它时,它会完美地启动Sass文件监视器:

nohup sass --watch /data/sass/:/data/css/ > /var/log/sass.out 2> /var/log/sass.err &

但是当我把它放在这样的脚本中时(用于调试的简化示例脚本):

COMMAND="[exactly the same command as above]"
echo `$COMMAND`

我收到此错误:

nohup: ignoring input and redirecting stderr to stdout
Errno::ENOENT: No such file or directory - > Use --trace for backtrace. >>> 
Sass is watching for changes. Press Ctrl-C to stop.

如果我指定完整路径/ usr / bin / local / sass,也会发生同样的事情。知道我哪里错了吗?

1 个答案:

答案 0 :(得分:2)

您无法通过以下方式运行复杂命令(例如,使用重定向)

echo `$COMMAND`

如果您运行的是简单的二进制文件或脚本,则只能执行此操作。 您的$COMMAND需要在执行前正确扩展,因此您需要运行:

echo `eval $COMMAND`
相关问题