2

我制作了一个脚本,它使用了一个名为 Diascope 的程序,它是一个视频幻灯片程序。

我正在尝试在 encodeVideo.sh 中运行此命令

echo "Running diascope -clean /mnt/videos/video$1.txt..."
diascope -clean /mnt/videos/video$1.txt > /var/www/html/video/encodeVideo.log
echo "Removing old deploy dir, and making new one..."

我正在从 rc.local 运行此脚本,以便每次启动实例时它都会运行。

我所需要的只是获得“diascope”命令的输出,在 rc.local 中我运行 encodeVideo:

/bin/bash /var/www/html/video/encodeVideo.sh > /var/www/html/video/newlog

在新日志中我可以看到这个

Running diascope -clean /mnt/videos/video7.txt...
Removing old deploy dir, and making new one...

和 /var/www/html/video/encodeVideo.log 完全是空的!Diascope 使用 gawk,顺便说一句,当我手动运行 encodeVideo.sh 脚本时,我可以看到处理的输出。为什么我无法在此日志中捕获它?

有没有可能它不是标准输出,所以“>”实际上并没有捕获它?

任何想法都会有所帮助,谢谢!

4

2 回答 2

2

尝试将stderrstdout重定向到文件名

diascope -clean /mnt/videos/video$1.txt 1> /var/www/html/video/encodeVideo.log  2>&1
于 2012-04-05T01:45:31.893 回答
2

有没有可能它不是标准输出,所以“>”实际上并没有捕获它?

绝对:它可能是标准错误,在这种情况下你必须使用2>而不是>.

于 2012-04-05T01:45:56.760 回答