Bash Scripting从rc.local运行

时间:2012-04-05 01:38:13

标签: linux bash

我制作了一个使用名为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脚本时,我可以看到处理的输出。为什么我不能在这个日志中捕获它?

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

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

2 个答案:

答案 0 :(得分:2)

尝试将 stderr stdout 重定向到文件名

diascope -clean /mnt/videos/video$1.txt 1> /var/www/html/video/encodeVideo.log  2>&1

答案 1 :(得分:2)

  

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

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