Estou tentando criar um alias simples:
alias draw="pinta &> /dev/null & disown"
A intenção aqui é bastante óbvia. Meu problema é que sempre que passo em uma discussão, recebo
bash: disown: file.jpg: no such job
e pinta abre sem o arquivo carregado. Como passo meu argumento para pinta e depois rejeito a tarefa?
EDITAR:
Tentei passar explicitamente os argumentos da seguinte maneira:
alias draw="pinta $* &> /dev/null & disown"
mas obtenho o mesmo resultado
Responder1
Em vez disso, use uma função:
function draw {
pinta "$@" &> /dev/null & disown
}
Bônus:Você deve usar "$@"
em vez de $*
.
Suponha que você tenha:
function foo {
echo "1: $1"
echo "2: $2"
echo "3: $3"
}
function bar {
echo '$*'; foo $*
echo '$@'; foo $@
echo '"$*"'; foo "$*"
echo '"$@"'; foo "$@"
}
Então tente:
bar "f o o" bar baz
Somente com "$@"
você você obtém o comportamento adequado.