@jintaxi
Чуть-чуть програю для себя.

При передаче результата в bash не могу создать переменную. Почему?

Есть критерии поиска, которые потом передаются в Bash для дальнейшей обработки: создании имени файла и конвертации через FFmpeg.

Есть примерная структура файлов.
605505b5db522906655262.png

Когда я использую команду find для поиска нужных мне файлов с их путями и прошу просто-напросто их вывести, то утилита отрабатывает просто идеально.
Результат выполнения команды find.
605505d73ae4b808908011.png

Но стоит перенаправить это выполнение в Bash для, например, создания переменной, редактировании её имени и последующей передачи в FFmpeg для конвертации, то происходит примерно следующее:
Результат выполнения, перенаправленный в Bash.

6055075037a76942458585.png
find ~/Desktop/Serial -type f \( -name "*.mkv" -o -name "*.avi" \) -exec sh -c 'path={}; echo $path' \;


Если просто попросить вывести переменную из результата выполнения, то отрабатывает адекватно:
Просто echo.
605507bf3adb3965795900.png


Подскажите, пожалуйста, как можно решить данную проблему. Спасибо.
  • Вопрос задан
  • 55 просмотров
Решения вопроса 2
@jintaxi Автор вопроса
Чуть-чуть програю для себя.
Данная проблема решается простым заключением в кавычки присваемого имени переменной.
605510672b224845818061.png
Ответ написан
Комментировать
@q2digger
никого не трогаю, починяю примус
Пробелы мешают, их надо экранировать. В зависимости от того как вы передаете их в баш способы могут отличаться. Вот неплохие примеры
https://unix.stackexchange.com/questions/81349/how...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы