Я конвертирую изображения в каталоге с именем foo
в bar
следующим образом.
$ mkdir bar
$ mogrify -path bar -negate foo/*.png
Есть ли в Imagemagick опция создания папки с параметром -path
, если она не существует.
Я конвертирую изображения в каталоге с именем foo
в bar
следующим образом.
$ mkdir bar
$ mogrify -path bar -negate foo/*.png
Есть ли в Imagemagick опция создания папки с параметром -path
, если она не существует.
Чтобы получить аргументы из команды mogrify
и выполнить другие действия в зависимости от их содержимого, вы можете "переопределить" программу своей собственной функцией, а затем передать исходные аргументы этой функции:
mymog(){
[[ $1 == "-path" ]] && [[ ! -d $2 ]] && mkdir "$2"
mogrify "$@"
}
Чтобы использовать его, просто замените mymog
везде, где вы используете mogrify
:
mymog -path bar -negate foo/*.png
Функция проверяет, является ли первый аргумент -path
. Если да, то он идет , чтобы проверить , если второй аргумент не существующий каталог. Если это не так, то он создает этот каталог. ([[ ]] &&
- это просто еще один способ написать операторы if-then.) В любом случае он передает все аргументы команде mogrify
.
Единственное предупреждение заключается в том, что вы должны поставить аргумент -path
первым - вы не можете вставить его в другом месте строки. Вы должны быть в состоянии использовать это везде, где вы обычно используете mogrify
и он просто проигнорирует часть mkdir
если нет определения -path
.
Чтобы сделать это доступным для ежедневного использования, добавьте эти 4 строки в файл .bash_profile
или .bashrc
, в зависимости от вашей операционной системы.
РЕДАКТИРОВАТЬ # 2: Новый ответ без зависимости от положения -path
function mogmod(){
args=("$@")
for ((i=0; i < $#; i++)) {
if [[ ${args[$i]} = "-path" ]]
then
mypath=${args[((i+1))]}
[[ ! -d "$mypath" ]] && mkdir "$mypath"
fi
}
mogrify "$@"
}