私が試したら
$ alias pwd=echo
$ alias echo=pwd
私は得る
$ pwd
/home/owen
$ echo hi
hi
エイリアスが再帰的に続いているようです。おそらく、再帰を停止する方法があれば、それはうまくいくでしょう。この例では を使用できますbuiltin
が、一般的には機能しません。特に-g
エイリアスの場合はそうです。
私が試したら
$ alias pwd=echo
$ alias echo=pwd
私は得る
$ pwd
/home/owen
$ echo hi
hi
エイリアスが再帰的に続いているようです。おそらく、再帰を停止する方法があれば、それはうまくいくでしょう。この例では を使用できますbuiltin
が、一般的には機能しません。特に-g
エイリアスの場合はそうです。
必要なのは、コマンドが一度展開されることだけです。
zshのドキュメントで説明されているように; 引用することでエイリアスの展開を防ぐことができます。
これでうまくいくはずです
$ alias pwd="\echo" ; alias echo="\pwd"
builtin
組み込みのシェル コマンドではない for コマンドを使用するのと同じことを行うには、2 つの方法があります。
1 つ目は、から取得するコマンドのフル パスを使用することですwhich
。例えば、
> which cat
/bin/cat
> /bin/cat
cat
設定した可能性のあるエイリアスを無視して実行されます。
もう 1 つのオプションは、 を使用すること/usr/bin/env
です。例えば、
> /usr/bin/env cat
また、設定した可能性のあるcat
エイリアスを無視して実行されます。cat