我制作了一个使用名为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
在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脚本时,我可以看到处理的输出。为什么我不能在这个日志中捕获它?
它可能不是标准输出,所以“>”实际上没有抓住它?
任何想法都会有所帮助,谢谢!
答案 0 :(得分:2)
尝试将 stderr 和 stdout 重定向到文件名
diascope -clean /mnt/videos/video$1.txt 1> /var/www/html/video/encodeVideo.log 2>&1
答案 1 :(得分:2)
它可能不是标准输出,所以“>”实际上没有抓住它?
绝对:它可能是标准错误,在这种情况下,您必须使用2>
而不是>
。