1

私は bash でエイリアスと関数を作成することにかなり慣れていないので、一言で言えば本当にシンプルなものが欲しい

alias edit='emacs 'argv[0]'&'

だから私はjunk.txtを編集することができます

バックグラウンドで編集しますが、実際にこのような関数を作成する必要があるかどうかはわかりません。これはおそらく、UNIX の人にとってはあまりにも明白です。

4

3 に答える 3

2

エイリアスではなく関数を使用します。

edit() {
    emacs "$@" &
}
于 2013-04-25T15:41:49.607 に答える
1

このエイリアスを次のように使用します。

alias edit='emacs '

引数を emacs コマンドに直接渡すことができる引用符の前のスペースに注意してください。このエイリアスを次のように呼び出すことができます。

edit junk.txt

また

edit foo.sh
于 2013-04-25T15:42:01.437 に答える
0

少なくとも bash では、エイリアスでやろうとしていることを行うことはできません。

bash ドキュメントの引用:

csh のように、置換テキストで引数を使用するメカニズムはありません。引数が必要な場合は、シェル関数を使用する必要があります (シェル関数を参照)。

エイリアスは、単純なコマンドの最初の単語としてのみ使用できます。に拡張edit foo.txtする方法はありませんemacs foo.txt &

(csh (および tcsh) エイリアスはより強力ですが、csh には機能がありません。とにかく bash を使用しています。)

argv質問の試みで使用した name は、bash では特に何も意味しないことに注意してください。引数 (スクリプトまたは関数への) は 、 などと呼ばれ$1ます$2。引数の完全なリストは$*または$@です。しかし、それはエイリアスには当てはまりません。bash ドキュメントでは、これらすべてが説明されています。

glglgl の答えは正しいです。関数を使用してください。

于 2013-04-25T17:11:20.203 に答える