如果我可以将控制台输出重定向到文件,我该如何重定向执行的命令呢?
实施例: ffmpeg -i videoFile 1> logFile.txt 2>& 1
logFile不会作为第一行: ffmpeg -i videoFile 1> logFile.txt 2>& 1
感谢。
答案 0 :(得分:0)
不完全清楚你的目标是什么,所以这里有几件事要尝试。此外,最好包含您正在使用的OS或shell的标记。我希望你不是一个真正的Windows用户: - )
您知道script
实用程序吗?您可以运行script logFile
,之后的任何命令和输出都将被捕获到logFile
。缺点是它捕获一切。做一个快速测试,看看它是否适合你。另请查看man script
,了解有关特定操作系统脚本版本固有的时髦性的详细信息。有些人比其他人好。在这种情况下,script -k logFile
可能会更好。
否则,如果你真的需要这个,我会做一个小的shell脚本,如:
cat ffmpegwrapper
#!/bin/bash
# ffmpegWrapper
vidFile="$1"
echo ffmpeg -i "$vidFile"
ffmpeg -i "$vidFile"
将其保存到PATH中包含的目录,最好是/usr/local/bin
。
如果您想要更加灵活地使用什么(额外的ffmpeg选项)或多少(更多文件),可以从cmd-line处理,您可以尝试将"$1"
的引用更改为{{ 1}},表示“cmd-line上的所有参数,将引用的空格保持为单个参数。即cmd "${@}"
只有3个参数,$ 2的值为1 "2 3" 4
。只需记住"2 3"
1}}始终是-i
将看到的第一个选项。
使其可执行
ffmpeg
运行它并捕捉你正在做的输出
chmod 755 ffmpegWrapper
注意,现在您不需要输入-i。
要查看发生了什么,您可能更喜欢使用 ffmpegWrapper videoFile > logFile.txt 2>&1
实用程序,例如
tee
如果您希望历史记录在第一个示例中使用追加重定向,即 ffmpegWrapper videoFile 2>&1 | tee logFile.txt
或>>
选项-a
,请不要忘记。
IHTH