Para obter argumentos do comando mogrify e fazer outras ações com base em seu conteúdo, você pode "substituir" o programa com uma função própria e, em seguida, passar os argumentos originais para a função:
mymog(){
[[ $1 == "-path" ]] && [[ ! -d $2 ]] && mkdir "$2"
mogrify "$@"
}
Para usá-lo, basta substituir mymog onde quer que você usaria mogrify :
mymog -path bar -negate foo/*.png
A função testa para ver se o primeiro argumento é -path . Em caso afirmativo, ele continuará testando se o segundo argumento não é um diretório existente. Se não for, então cria esse diretório. (O [[ ]] && é apenas outra maneira de escrever instruções if-then.) Em qualquer um dos casos , ele passa todos os argumentos para o comando mogrify .
O único aviso é que você tem que colocar o argumento -path primeiro - você não pode colocá-lo em outro lugar na linha. Você deve poder usar isso onde quer que você usaria normalmente mogrify e ele apenas ignorará a mkdir part se não houver nenhuma definição -path .
Para que isso esteja disponível no seu uso diário, adicione essas quatro linhas ao arquivo .bash_profile ou .bashrc , dependendo do sistema operacional.
EDIT # 2: Nova resposta sem dependência da posição de -path
function mogmod(){
args=("$@")
for ((i=0; i < $#; i++)) {
if [[ ${args[$i]} = "-path" ]]
then
mypath=${args[((i+1))]}
[[ ! -d "$mypath" ]] && mkdir "$mypath"
fi
}
mogrify "$@"
}