Mac abre um novo terminal Janela e executa o comando

0

Estou tentando executar este script, não consigo passar corretamente o comando para a nova janela de terminal.

O script recebe um argumento, um arquivo de vídeo, e solicita ao usuário que selecione um tamanho de vídeo para a saída. De lá, eu gostaria que ele abrisse uma nova janela de terminal e executasse o comando ffmpeg.

#!/bin/sh

input=$1
CD="CocoaDialog.app/Contents/MacOS/CocoaDialog"

# Get width from user
width='$CD standard-inputbox --title "Please Enter Video Width" | sed -n '1!p''
proceed='$CD ok-msgbox --text "You entered $width press ok to proceed"'

if [ $proceed == 1 ]
then
  # Build MP4 video creation command
  cmd_to_run="./ffmpeg -i \""$input"\" -vf scale=$width:-1 -strict -2 -c:a aac -b:a 256k -b:v 4096k -vcodec libx264 -crf 22 -preset slow -threads 0 \""${input%.*}.converted.$width.mp4"\""

  # Execute command in new terminal window
  osascript -e "tell application \"Terminal\" to do script \"$cmd_to_run\""
else
    echo "You selected cancel..."
fi

Qualquer ajuda seria muito apreciada

    
por Neddy 12.09.2017 / 07:05

1 resposta

1

Coloque as substituições de variáveis do seu comando entre aspas simples:

input="/path/too/foo bar.mp4"
cmd_to_run="./ffmpeg -i '$input' …
osascript -e "tell application \"Terminal\" to do script \"$cmd_to_run\""

Caso contrário, o parâmetro será substituído muito cedo.

    
por 12.09.2017 / 09:56