Как использовать вывод команды для процесса в цикле в Bash?

Я пытаюсь получить информацию о формате кучи медиафайлов в каталоге. Скрипт, который у меня есть, проходит через каждый файл, упоминает, в каком формате он находится (если это медиа-файл), а затем завершается.

То, что я действительно хотел сделать, это запустить определенную команду, если результат соответствует определенному значению. вот код, который у меня есть:

for file in ./* do ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 "$file" done 

Вот пример вывода, который я получаю, когда запускаю его в папке с 10 файлами и 1 папкой:

 vorbis aac opus vorbis mp3 opus mp3 ./file1.txt: Invalid data found when processing input ./Soundcloud: Is a directory mp3 ./media_bash_file.sh: Invalid data found when processing input 

В идеале, то, что я пытаюсь сделать, – это когда команда ffprobe запускается, я хочу идти

 if ffprobe_output = "vorbis" then run x command ELSE ... 

и так далее. Я пробовал то, что упоминалось в различных сообщениях в блоге об использовании

 var=$(insert_ffprobe_command_here) 

в самом начале командного файла, но я не могу заставить его работать правильно, обычно это приводит к ошибке, например:

 "Argument './Mediafile_X' provided as input filename, but './Mediafile_Y' was already specified. 

Я только добрался до первого фрагмента кода, который я сделал.

One Solution collect form web for “Как использовать вывод команды для процесса в цикле в Bash?”

 for file in ./* do output=$(ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 "$file") if [ "$output" = "vorbis" ];then ...... else .... fi done 
  • Возможно ли, чтобы сценарий оболочки содержал команды tcsh и bash в одном скрипте?
  • Как автоматизировать повторяющийся процесс с использованием сценариев оболочки
  • Эффективный способ запуска нескольких сценариев оболочки из одного сценария оболочки
  • как проверить каталог пуст
  • сценарий оболочки - команда echo не печатает в правильной последовательности
  • Как проверить файлы ~ application / x-trash
  • захватить идентификатор процесса, который вызвал функцию внутри функции
  • Сопоставьте одну ячейку и замените значение другой ячейки в csv, используя сценарий оболочки
  • Может кто-то уточнить: «случай»: $ PATH: «in» в скрипте?
  • Использование хеша в сценариях оболочки
  • Что означает «если» означает «$», если $ (ssh user @ host «»); тогда …?
  • Interesting Posts

    Как я могу контролировать файл, который полностью воссоздается во время его запуска?

    Как заставить TCP-пакеты использовать конкретную сетевую карту

    Bash для получения разрешенного исполняемого пути?

    Установить R в моем собственном каталоге

    GREP заглавные буквы из определенного столбца, выведите результат в тот же файл, что и новый столбец

    Scribes Editor и Slackware64 13.37 – PyGTKSpell не может быть найден

    API ядра файловой системы

    что означает флаг -z здесь

    Как разблокировать файловую систему только для чтения на дистрибутиве Linux OpenWRT?

    Переключить ключ к двум модификаторам или использовать мета-ярлыки в терминале (терминатор)

    Узнайте владельца названия службы DBus

    Получить пары линий и умножить

    Проблемы с Apache при попытке настроить SSL (Debian)

    Использование grep / sed / awk для классификации записей в файле журнала

    Как заставить wget конвертировать * все * загруженные ссылки в относительные?

    Linux и Unix - лучшая ОС в мире.