Как открыть несколько файлов изображений из командной строки, последовательно, для редактирования?
Допустим, у меня есть три файла изображений для редактирования. Рассмотрим все файлы в ~/Pictures, Пусть имя первого файла будет 1.svg, имя второго файла будет 2.svg и имя третьего файла будет 3.svg У меня есть редактор Inkscape. Теперь я хочу, чтобы bash-скрипт выполнялся так, чтобы произошло следующее:
- Первый
1.svgдолжен открыть для меня, чтобы редактировать. - После редактирования, когда я закрываю этот файл, автоматически
2.svgдолжен открыть для меня, чтобы редактировать. - Теперь, когда я закончу редактирование
2.svg, Я хочу3.svgоткрыть для редактирования. - Теперь после редактирования
3.svgскрипт должен завершиться закрытием GIMP.
PS:- Если вам интересно, если это домашняя работа, это не так! Смотрите здесь Вы заметите, что я должен редактировать изображения там. Чтобы сделать этот ответ лучше, мне нужна помощь здесь. Поэтому, пожалуйста, помогите. Также Я ПОЛНЫЙ НАЧИНАЮЩИЙ. Я ничего не знаю о Баш. Поэтому объясните свой ответ как можно более подробно. Также вы можете рассмотреть вопрос об ответе в редакторе GIMP для редактирования файлов.jpg. Это может быть полезно для других. Кстати, я использую 14.04 LTS . Заранее спасибо.
ОБНОВЛЕНИЕ:- Приведенный выше ответ был отредактирован в соответствии с принятым ответом ниже.
3 ответа
Как говорит Rmano, вы можете просто сделать for Цикл в терминале:
for i in 1.jpg 2.jpg 3.jpg; do gimp $i; done
Либо запустите это в каталоге, где находятся файлы, либо каждый файл должен иметь остальную часть пути к нему. Вы можете поместить туда столько файлов, сколько захотите.
GIMP откроет файл, отредактирует его и закроет GIMP. Когда GIMP закрывается, for Цикл продолжается и открывает следующий файл в списке.
Если вы не хотите закрывать GIMP каждый раз, попробуйте добавить read -p:
for i in 1.jpg 2.jpg 3.jpg; do gimp $i && read -p "Press [Enter] key to continue..."; done
Как только вы закончите редактирование файла, вы сможете нажать Enter в терминале, и следующий файл должен открыться в GIMP, без необходимости закрывать GIMP.
Это самый простой способ, который я мог бы себе представить, может быть сложно попытаться определить, когда GIMP закрывает файл.
Примечание для вашего случая
Как отметил Рмано, большинство файлов - это файлы SVG. Так что перечислите все ваши файлы SVG и замените gimp с inkscape, PNG файлы будут в порядке с gimp,
Следующая команда открывает файлы в связанном приложении по умолчанию:
edit 1.svg 2.svg 3.svg
Если вы хотите открыть все .svg файлы в алфавитном порядке, вы можете использовать * подстановочные:
edit *.svg
* обозначает любую последовательность символов, так что вы можете использовать ее другими способами; например, чтобы последовательно открыть .svg файлы, чье имя содержит wibble:
edit *wibble*.svg
Существуют и другие символы подстановки, если вы хотите выбирать файлы на основе более тонких шаблонов.
Вы можете попробовать что-то вроде этого:
shopt -s nullglob
for i in *
do
if [ -d "$i" ]
then
continue
else
inkscape "$i"
fi
done
Я проверил его в своем каталоге картинок, и он, кажется, работает
Я пока не совсем понимаю первую строчку, но она поможет мне * работает. for loop затем перебирает все в текущем каталоге по одному. Если это не каталог, он открывается в Inkscape для редактирования.
Когда вы закончите редактирование и закроете inkscape, следующее изображение будет открываться, пока не останется больше изображений.
Для вашего конкретного случая (после прочтения связанного вопроса) это может работать лучше. Запомни cd в /usr/share/unity/icons а затем запустите это:
for i in file1.svg file2.svg file3.svg
do
if [ -d "$i" ]
then
continue
else
inkscape "$i"
fi
done
замена file1.svg file2.svg file3.svg со списком файлов, которые вы хотите редактировать.