如何编辑 bash 脚本以考虑空格条目?

如何编辑 bash 脚本以考虑空格条目?

我制作了一个脚本来自动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...]echoError:This is not a valid response…

答案1

因此,指导+反复试验引导我找到了解决方案。我引用了“$REPLY”变量按照建议…但是我需要[[…]]而不是[…]脚本正确执行。我不太清楚为什么,但现在它仍然有效。感谢SE社区!

相关内容