Я имею в виду некоторые подстановки команд. В прошлом я мог использовать обратные кавычки в Bash, когда, например, мне нужно было загрузить список файлов/ссылок, которые уже были собраны в текстовом файле, построчно:
wget `cat list.txt`
и даже мегадл скачать с меги:
megadl `cat list.txt`
К сожалению, сейчас это не работает, как ожидалось, по какой-то причине. Я получаю весь список файлов в виде длинной строки текста, разделенной пробелами вместо новой строки.
Я часто пишу небольшие скрипты, которые могут обрабатывать только один аргумент — файл, а не список файлов, перечисленных в текстовом файле. Конечно, я не хочу изменять свои сценарии, потому что Bash предоставляет этот вспомогательный механизм для применения одной и той же команды к списку файлов, например, к выводу «ls -1 *.jpg». У меня есть небольшая утилита под названием «cgamma», которая применяет гамма-коррекцию к файлам изображений, сохраняя при этом насыщенность цвета (она просто вызывает mogrify от imagemagick). И я хотел бы использовать его во многих файлах изображений, например:
cgamma `ls -1 *.jpg` 1.3
Я знаю, что мог бы использовать однострочный цикл for, но это больше набирает:
for $i in $(ls -1 *.jpg);do cgamma $i 1.3;done
Итак, мой вопрос: как я могу правильно использовать обратные кавычки, подстановку команд, обрабатывать списки файлов и применять одну и ту же команду ко всем из них?