У меня есть сценарий для преобразования видео Ручного тормоза, но я хочу сделать предварительные установки. Я испытываю затруднения из-за сценария, в конце это производит что-то как
HandBrakeCLI -i file.avi -o file.mp4 flags
Но я не могу заставить часть флагов работать, так для поиска и устранения неисправностей я хочу видеть то, что командная строка получает как перевод моего сценария.
Вот ссылка на мой рабочий сценарий
Как Установить Ручной тормоз и Преобразовать рекурсивное дерево файла
Вот то, на что я хотел бы, чтобы это было похоже
Только изменения показывают
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"' __ {} \;
В основном опция $Flags не работает, и поскольку я бездельничаю, это или не находит файл или делает и не видит флаги, справка со сценарием прекрасна, но для будущего, отлаживая других сценариев, которые я не возражал бы знать, как просто произвести команды, которые это отправит в оболочку вместо этого только на экран, или текстовый файл, вероятно, лучше.
Спасибо!
Можно добавить set -x
к верхней части Вашего сценария удара или (эквивалентно) выполненный это использование
bash -x yourscript
Посмотрите help set
или SHELL BUILTIN COMMANDS
раздел man bash
:
-x Print commands and their arguments as they are executed.
Существует больше обсуждения в том, Как отладить сценарий удара? на SE Unix & Linux
Что Вы будете, вероятно, видеть, в этом случае это $FLAGS
переменная пуста: это включается в одинарные кавычки, так передается буквально bash -c
подоболочка, где $FLAGS
не определено.
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"
Работавший для меня, спасибо за парней справки, видят сценарий в действии в , Как Установить Ручной тормоз и Преобразовать рекурсивное дерево файла