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,$2etc. 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 '*'