1

Я пытаюсь запустить этот скрипт, я не могу правильно передать команду в новое окно терминала.

Сценарий принимает один аргумент, видеофайл, а затем предлагает пользователю выбрать размер видео для вывода. Оттуда я хотел бы открыть новое окно терминала и выполнить команду 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

Любая помощь будет принята с благодарностью

1 ответ1

2

Поместите переменные вашей команды в одинарные кавычки:

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

В противном случае параметр будет подставлен слишком рано.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .