1

私が試したら

$ alias pwd=echo
$ alias echo=pwd

私は得る

$ pwd
/home/owen
$ echo hi
hi

エイリアスが再帰的に続いているようです。おそらく、再帰を停止する方法があれば、それはうまくいくでしょう。この例では を使用できますbuiltinが、一般的には機能しません。特に-gエイリアスの場合はそうです。

4

2 に答える 2

1

必要なのは、コマンドが一度展開されることだけです。

zshのドキュメントで説明されているように; 引用することでエイリアスの展開を防ぐことができます。

これでうまくいくはずです

$ alias pwd="\echo" ; alias echo="\pwd"
于 2013-11-27T01:35:13.297 に答える
0

builtin組み込みのシェル コマンドではない for コマンドを使用するのと同じことを行うには、2 つの方法があります。

1 つ目は、から取得するコマンドのフル パスを使用することですwhich。例えば、

> which cat
/bin/cat
> /bin/cat

cat設定した可能性のあるエイリアスを無視して実行されます。

もう 1 つのオプションは、 を使用すること/usr/bin/envです。例えば、

> /usr/bin/env cat

また、設定した可能性のあるcatエイリアスを無視して実行されます。cat

于 2013-09-24T03:46:19.657 に答える