Como posso editar meu script bash para contabilizar as entradas de espaço em branco? [duplicado]

1

Eu criei um script para automatizar a ffmpeg conversion de mkv > m4v > abra o m4v em Subler.app para importar os metadados manualmente, no ponto em que eu moverei o arquivo para a minha biblioteca do iTunes.

Eu uso o iTunes porque tenho duas Apple TVs na rede e uso um iMac de 2007 para funcionar como meu servidor de mídia. Eu localmente ssh nesta máquina para executar este script.

Esse script falha se eu inserir um caminho com espaço (s) em branco, ou inserir o título do filme que inclui espaço em branco. Como corrijo este script para acomodar o espaço em branco? Sei que a sintaxe é desleixada, sou muito nova no script, por isso, qualquer outra sugestão para que ela funcione melhor seria apreciada:)

Aqui está:

    #! /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

—————————

EDITAR:

A pergunta ainda pode ser uma possível duplicação, mas eu tentei usar a sintaxe (ambas tentando “$REPLY” e “$(REPLY)” ) em a resposta vinculada e ainda não foi executada. O errors retorna bad substitution para a instrução […bracketed...] ou minha echo declaração ... Error:This is not a valid response…

    
por njboot 15.05.2016 / 07:28

1 resposta

1

Então, orientação + tentativa e erro me levaram à solução. Citei a variável “$REPLY” como sugerido … mas também precisava de [[…]] em vez de […] para o script ser executado corretamente. Não sei exatamente por que, mas agora está funcionando mesmo assim. Obrigado comunidade SE!

    
por 15.05.2016 / 09:05