在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