在bash脚本中运行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,则会发生同样的情况。 任何想法,我要去哪里错了?


您不能通过以下方式运行复杂的命令(例如重定向):

echo `$COMMAND`

如果您正在运行简单的二进制文件或脚本,则只能真正做到这一点。 您的$COMMAND需要在执行前正确扩展,因此您需要运行:

echo `eval $COMMAND`
链接地址: http://www.djcxy.com/p/56863.html

上一篇: Error when running nohup in bash script

下一篇: Bash Script not executing command