我制作了一个脚本来自动ffmpeg
转换mkv > m4v
> 打开 m4v 来Subler.app
手动导入元数据,此时我会将文件移动到我的 iTunes 库中。
我使用 iTunes 是因为网络上有两台 Apple TV,并使用 2007 款 iMac 作为我的媒体服务器。我在本地ssh
进入这台机器以便执行此脚本。
如果我输入带有空格的路径,此脚本将失败,或输入包含空格的电影标题。如何修复此脚本以适应空格?我知道语法很草率,我对脚本编写非常陌生,因此任何其他使其运行得更好的指针将不胜感激:)
这里是:
#! /bin/bash
#ffmp4
function convert {
ffmpeg -i $REPLY -strict -2 -c:v copy -c:a copy -c:s copy $PWD/out.m4v
}
function rename {
echo "Please Provide the Title:"
read -e; mv $PWD/out.mp4 $PWD/$REPLY.m4v
}
function subler {
open -a Subler.app $REPLY.m4v
}
cd ~/Public/ &&
while read -e; do
if [ ${REPLY: -4} == ".mkv" ];
then convert;
rename;
subler;
exit
else
echo "Error: This is not a valid response" && exit 1
fi
done
—————————
编辑:
问题可能仍然可能重复,但我尝试使用语法(尝试“$REPLY”
和“$(REPLY)”
)链接的答案并且仍然无法执行。声明errors
或我的声明的返回...bad substitution
[…bracketed...]
echo
Error:This is not a valid response…
答案1
因此,指导+反复试验引导我找到了解决方案。我引用了“$REPLY”
变量按照建议…但是我还需要[[…]]
而不是[…]
脚本正确执行。我不太清楚为什么,但现在它仍然有效。感谢SE社区!