com
#!/bin/bash
set -f
mono app.exe "$@"
set -f
não tem efeito porque a matriz de argumentos com aspas duplas ( "$@"
) não sofre mais expansões.
Se "$@"
contiver um argumento cujo valor seja *
, ele passará para mono app.exe
inalterado.
O problema é que o shell que está chamando este script de wrapper irá querer expandir o asterisco, já que set +f
é o padrão.
Você precisará de set -f
neste shell de chamada, e não no wrapper.
Com set +f
(padrão), a barra invertida ( \*
) é outra alternativa à cotação ( '*'
ou "*"
) que você pode querer considerar.