我正在尝试创建一个简单的别名:
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
只有这样"$@"
你才能获得适当的行为。