Script de solução de problemas: quer ver a saída do comando para o CLI

0

Eu tenho um script para converter vídeos do Handbrake, mas quero fazer predefinições. Estou tendo problemas com o script, no final ele gera algo como

    HandBrakeCLI -i file.avi -o file.mp4 flags

Mas não consigo fazer a parte de sinalizadores funcionar, portanto, para solucionar problemas, quero ver o que a linha de comando está recebendo como tradução do meu script.

Aqui está o link para o meu script de trabalho

Como instalar o Handbrake e converter árvores de arquivos recursivos

Aqui está o que eu gostaria que parecesse

Apenas as alterações são mostradas

    FLAGS="-E ac3 -6 5point1 -R 48 -B 448 --audio-fallback ac3"
    if [ -z "$1" ] ; then
        TRANSCODEDIR="."
    else
        TRANSCODEDIR="$1"
    fi
        find "$TRANSCODEDIR"/* -type f -exec bash -c 'HandBrakeCLI -i "$1" -o "${1%\.*}".mp4 "$FLAGS"' __ {} \;

Basicamente, a opção $ Flags não está funcionando, e como eu não o localizo, ou não vejo os sinalizadores, a ajuda com o script é boa, mas para futuras depurações de outros scripts eu não se importaria de saber como apenas enviar os comandos que "teria" enviado para o shell, em vez de apenas para a tela ou um arquivo de texto, provavelmente é melhor.

Obrigado!

    
por FreeSoftwareServers 16.07.2015 / 00:07

2 respostas

2

Você pode adicionar set -x ao topo do seu script bash ou (equivalentemente) executá-lo usando

 bash -x yourscript

Veja help set ou a seção SHELL BUILTIN COMMANDS de man bash :

  -x  Print commands and their arguments as they are executed.

Há mais discussões em Como depurar um script bash? em SE Unix & Linux

O que você provavelmente verá nesse caso é que $FLAGS variable está vazia: ele é colocado entre aspas simples, sendo passado literalmente para o subgrupo bash -c , em que $FLAGS é indefinido.

    
por steeldriver 16.07.2015 / 04:07
0
export FLAGS="-f mp4 -O --decomb=bob --loose-anamorphic --modulus 2 -e x264 -q 20 --vfr -E ac3 -6 5point1 -R 48 -B 448 --audio-fallback ac3 --encoder-preset=veryfast  --verbose=1"

Trabalhei para mim, obrigado pela ajuda pessoal, veja o script em ação em Como instalar o Handbrake e converter árvores de arquivos recursivos

    
por FreeSoftwareServers 13.08.2015 / 09:37