Я пытаюсь выполнить скрипт, который запускает преобразование видео Handbrake.
Если я запускаю следующую команду из терминала, она работает нормально:
HandbrakeCLI -i inputtestfile.mp4 -o outputtestfile.mp4 -z "Preset"
Если я помещу это в скрипт .sh (и предоставлю права на выполнение скрипта с помощью chmod a+x), я получу следующую ошибку:
HandbrakeCLI: Command not found
Если потом указать полный путь к HandbrakeCLI, то работает, например:
/usr/local/Cellar/handbrake/1.2.0/bin/HandBrakeCLI -i inputtestfile.mp4 -o outputtestfile.mp4 -z "Preset"
Однако вышеописанный способ неудобен, так как каждый раз, когда я обновляю Handbrake до новой версии, мне приходится обновлять скрипт.
Как я могу добавить Path (я думаю, что это правильно) в скрипт, чтобы я мог просто использовать:
HandbrakeCLI -i inputtestfile.mp4 -o outputtestfile.mp4 -z "Preset"
Спасибо

Вы можете начать сценарий .sh с:
PATH=$PATH:/usr/local/Cellar/handbrake/1.2.0/bin
дорожка — это переменная среды, которая влияет на то, откуда ш будет искать неполные имена файлов (команды).
И для меняющейся версии вы можете проанализировать вывод HandBrake --version и использовать его как переменную вместо строки 1.2.0 в PATH.
Пожалуйста; но вы уверены, что этот файл не является символической ссылкой на указанный выше путь (на который все еще будет влиять управление версиями)?
Спасибо за помощь. Некоторые помогли мне решить эту проблему с помощью «/usr/local/bin/HandBrakeCLI».