передать аргументы псевдониму, а затем отказаться

передать аргументы псевдониму, а затем отказаться

Я пытаюсь создать простой псевдоним:

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

Намерение здесь довольно очевидно. Моя проблема в том, что всякий раз, когда я передаю аргумент, я получаю

bash: disown: file.jpg: no such job

и pinta открывается без загруженного файла. Как мне передать свой аргумент pinta, а затем отказаться от задачи?

РЕДАКТИРОВАТЬ:

Я попробовал явно передать аргументы следующим образом:

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

но я получаю тот же результат

решение1

Вместо этого используйте функцию:

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

Бонус:"$@"Вместо этого следует использовать $*.

Предположим, что у вас есть:

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

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

Тогда попробуйте:

bar "f o o" bar baz

Только с "$@"вами можно добиться правильного поведения.

Связанный контент