我想创建一个小的 shell 脚本,它将告诉我视频的持续时间,其文件名作为参数传递给它。它会是这样的:
$ script_name "file name with spaces.webm" # or any other media file extension
脚本文件类似于
#/bin/bash
SECRET_SAUCE_USING_$1 | mediainfo | grep Duration | sort -u
# maybe SECRET_SAUCE_USING_$1 | xargs -0 mediainfo . . .
在命令行上,这是有效的,也是我希望脚本执行的操作:
$ mediainfo file\ name\ with\ spaces.webm | grep Duration | sort -u
我试过使用类似的东西
echo "$1" | sed 's/ /\\ /g' # piped to mediainfo . . .
将文件名中的空格更改为“\”字符对(不带引号)。回声... | sed ...部分工作但mediainfo barfs
和
echo "$1" | tr ' ' '\000' | xargs -0 mediainfo . . .
将空格更改为空值并让 xargs 在文件名中使用空值而不是空格来调用 mediainfo。
到目前为止我还没有找到解决方案。(我实际上使用 zsh,而不是 bash。)非常感谢所有帮助。谢谢。
如果您希望脚本的参数 (
$1
) 最终成为 mediainfo 的参数,那么只需将其放在那里:这适用于脚本的单个参数。更灵活的是,您可以遍历脚本的所有参数并将它们一次一个地提供给 mediainfo: