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

Допустим, у меня есть три файла изображений для редактирования. Рассмотрим все файлы в ~/Pictures, Пусть имя первого файла будет 1.svg, имя второго файла будет 2.svg и имя третьего файла будет 3.svg У меня есть редактор Inkscape. Теперь я хочу, чтобы bash-скрипт выполнялся так, чтобы произошло следующее:

  1. Первый 1.svg должен открыть для меня, чтобы редактировать.
  2. После редактирования, когда я закрываю этот файл, автоматически 2.svg должен открыть для меня, чтобы редактировать.
  3. Теперь, когда я закончу редактирование 2.svg, Я хочу 3.svg открыть для редактирования.
  4. Теперь после редактирования 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 со списком файлов, которые вы хотите редактировать.

Другие вопросы по тегам