the shell corrupts the
*
and sends god knows what to zzqfoo.py as second argument.
Não "corrompe" o *
. Ele faz o que sempre faz: expande o *
como curinga, correspondendo os nomes de arquivos e diretórios no diretório atual.
Você deve:
- cite o
*
ao passá-lo como um argumento - quote
$1
,$2
etc. ao usá-lo na função, para que o shell não faça a divisão de palavras ou a expansão de caracteres curinga neles
Então:
function zzqfoo {
python ~/my/dir/path/zzqfoo.py "$(abspath "$1")" "$2"
}
E corra assim:
zzqfoo myfile '*'