私は bash でエイリアスと関数を作成することにかなり慣れていないので、一言で言えば本当にシンプルなものが欲しい
alias edit='emacs 'argv[0]'&'
だから私はjunk.txtを編集することができます
バックグラウンドで編集しますが、実際にこのような関数を作成する必要があるかどうかはわかりません。これはおそらく、UNIX の人にとってはあまりにも明白です。
エイリアスではなく関数を使用します。
edit() {
emacs "$@" &
}
このエイリアスを次のように使用します。
alias edit='emacs '
引数を emacs コマンドに直接渡すことができる引用符の前のスペースに注意してください。このエイリアスを次のように呼び出すことができます。
edit junk.txt
また
edit foo.sh
少なくとも bash では、エイリアスでやろうとしていることを行うことはできません。
bash ドキュメントの引用:
csh のように、置換テキストで引数を使用するメカニズムはありません。引数が必要な場合は、シェル関数を使用する必要があります (シェル関数を参照)。
エイリアスは、単純なコマンドの最初の単語としてのみ使用できます。に拡張edit foo.txt
する方法はありませんemacs foo.txt &
。
(csh (および tcsh) エイリアスはより強力ですが、csh には機能がありません。とにかく bash を使用しています。)
argv
質問の試みで使用した name は、bash では特に何も意味しないことに注意してください。引数 (スクリプトまたは関数への) は 、 などと呼ばれ$1
ます$2
。引数の完全なリストは$*
または$@
です。しかし、それはエイリアスには当てはまりません。bash ドキュメントでは、これらすべてが説明されています。
glglgl の答えは正しいです。関数を使用してください。