Команда Bash завершается с ошибкой, когда часть ее поступает из переменнойLinux

Ответить
Anonymous
 Команда Bash завершается с ошибкой, когда часть ее поступает из переменной

Сообщение Anonymous »

Я почти уверен, что это будет помечено как дубликат чего-то, чего я не могу найти в SO. Есть так много похожих вопросов, но ничего из того, что я пробовал, похоже, не применимо в этом ужасно простом случае.
это часть длинного сценария, но я попытаюсь подвести итог в двух словах:< /p>
эта команда работает:

Код: Выделить всё

ffmpeg -v warning -stats -i "${working}" -vf "scale=-1:${CONVERT_HEIGHT}" -c:v libx265 -c:a aac -preset slow -x265-params "crf=22:min-keyint=25:keyint=50" "$writeTo"
если я попытаюсь передать предустановку как переменную следующим образом:

Код: Выделить всё

SLOW_PRESET="-preset slow"
ffmpeg -v warning -stats -i "${working}" -vf "scale=-1:${CONVERT_HEIGHT}" -c:v libx265 -c:a aac $SLOW_PRESET -x265-params "crf=22:min-keyint=25:keyint=50" "$writeTo"
не получается:

Код: Выделить всё

Unrecognized option 'preset slow'.
Error splitting the argument list: Option not found
Я попробовал отладить его с помощью set -x, соответствующая часть сценария находится здесь:

Код: Выделить всё

+ CURRENT_RES=720
+ writeTo='sometarget.mp4'
+ original='somesource.wmv'
+ working='some.tmp'
+ [[ 720 -gt 1080 ]]
+ SLOW_PRESET='-preset slow'
обратите внимание, что длинная команда ffmpeg не сохраняется в виде строки, а выполняется напрямую. Я также пробовал использовать "$SLOW_PRESET" и ${SLOW_PRESET}, которые ничего не изменили.
sh версия: GNU bash, версия 5.2.15(1 )-release (x86_64-slackware-linux-gnu)

Подробнее здесь: https://stackoverflow.com/questions/790 ... a-variable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»