Я пытаюсь создать простой псевдоним:
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
Только с "$@"
вами можно добиться правильного поведения.