我将目录中的图像转换foo
为bar
如下形式。
$ mkdir bar
$ mogrify -path bar -negate foo/*.png
-path
如果文件夹不存在,Imagemagick 中是否有可以使用选项创建的文件夹?
答案1
要从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 "$@"
}