Я пытаюсь использовать youtube-dl для получения URL-адресов некоторых видеороликов, а затем передать полученные URL-адреса на вход моего скрипт. Так что в моем терминале яВывод протокола youtube-dl скрипту, использующему ffmpeg, выглядит нормально, используя echo, но возвращает ошибку при выполнении
youtube-dl --ignore-config -iga ~/Desktop/youtube/videolist.txt | myscript.sh
В моем сценарии я определяю вещи, как
command='ffmpeg'
inputArgs='-i'
outputArgs='-c:v libx264 -preset ultrafast -qp 0'
directory="${HOME}/Desktop/Videos/"
output="video${count}"
extension='mp4'
я проверить его с echo
, чтобы убедиться, что все появляется в правильном порядке.
echo "${command}" "${inputArgs}" "${input}" "${outputArgs}" \
"${directory}""${output}${count}"."${extension}"
И результат от этого выглядит правильно. Но когда я пытаюсь запустить то же самое без предыдущего echo
команды, т.е.
"${command}" "${inputArgs}" "${input}" "${outputArgs}" \
"${directory}""${output}${count}"."${extension}"
Я получаю сообщение об ошибке, говорящее должно быть указано
По крайней мере, один выходной файл.
Так что для меня кажется очевидным, что я делаю что-то неправильно при попытке выполнить его.
Я попытался:
- со ссылкой на всю линию в целом
- котирования различных секций вместе
- не используя команду
exec
перед всем
Независимо от того, что я делаю , в какой-то момент процесса возникает ошибка. Я знаю, что это просто, я делаю неправильно. Кто-нибудь, пожалуйста, просветит меня, что это может быть?
Я чувствую себя очень сильно, что .
не должен быть просто посреди всего такого, но я действительно не знаю.
Снова все выглядит так, как должно быть, когда я запускаю echo
перед строкой параметров оболочки.
Если для того, чтобы понять, о чем я говорю, необходимо использовать более скрипт, который я использую, это не проблема.
В сценарии .. как вы вызываете команду. Также вы используете этот файл youtube-dl --ignore-config -iga ~/Desktop/youtube/videolist.txt | myscript.sh ... Или вы делаете youtube-dl --ignore-config -iga ~/Desktop/youtube/videolist.txt | ./myscript.sh – Varun
Ну, я называл это неправильным, но я называю это следующим образом: '' $ command "$ inputArgs" $ input "$ outputArgs" $ directory $ output $ count. $ extension "' Это то, что вы просили? Что касается трубопроводов, то я делаю «youtube-dl -ignore-config -iga ~/Desktop/youtube/videolist.txt | myscript.sh' Я видел ссылки на youtube-dl -thingsandstuff | ./myscript.sh раньше, но я не понимаю разницу между ними. –