エイリアスに引数を渡してから破棄する

エイリアスに引数を渡してから破棄する

単純なエイリアスを作成しようとしています:

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

あなただけが"$@"適切な行動をとります。

関連情報