pasar argumentos a alias y luego repudiar

pasar argumentos a alias y luego repudiar

Estoy intentando crear un alias simple:

alias draw="pinta &> /dev/null & disown"

La intención aquí es bastante obvia. Mi problema es que cada vez que paso un argumento, obtengo

bash: disown: file.jpg: no such job

y pinta se abre sin el archivo cargado. ¿Cómo le paso mi argumento a pinta y luego reniego de la tarea?

EDITAR:

Intenté pasar explícitamente los argumentos de la siguiente manera:

alias draw="pinta $* &> /dev/null & disown"

pero obtengo el mismo resultado

Respuesta1

Utilice una función en su lugar:

function draw {
    pinta "$@" &> /dev/null & disown
}

Prima:Deberías usar "$@"en lugar de $*.

Suponga que tiene:

function foo {
    echo "1: $1"
    echo "2: $2"
    echo "3: $3"
}

function bar {
    echo '$*'; foo $*
    echo '$@'; foo $@
    echo '"$*"'; foo "$*"
    echo '"$@"'; foo "$@"
}

Entonces intenta:

bar "f o o" bar baz

Sólo "$@"contigo se obtiene el comportamiento adecuado.

información relacionada