このHOMEコマンドは何ですか?

このHOMEコマンドは何ですか?

と同じように見える「HOME」というコマンドを実行できますcd && echo "~"。しかし、そのコマンドがどこに定義されているのかわかりません。

$ pwd
/tmp
$ which HOME
HOME not found
$ type HOME
HOME not found
$ man HOME
No manual entry for HOME
$ HOME
~
$ pwd
/Users/tba

組み込みシェルですか?これは私のホームディレクトリの完全修飾パスを印刷しようとして失敗したようです。

私はOS X YosemiteでZSH(Oh-My-Zshを含む)を実行しています。

ベストアンサー1

oh-my-zshこの動作を引き起こす2つのことが有効になっています。

  • 自動ディスク:コマンドを実行できず、コマンドがディレクトリ名の場合は、cdそのディレクトリで実行します。
  • CDABLE_VARS:コマンドの引数cd(またはオプションセットを含む暗黙のcd AUTO_CD)がディレクトリではなくスラッシュで始まらない場合は、前に文字があるかのように式を拡張してみてください。~

HOMEmake AUTO_CDPerformedzshと入力すると、made cd HOMEPerformedCDABLE_VARSがホームディレクトリに展開されzshます。cd ~HOME~HOME

zshオプション--xtrace呼び出しを使用して、何が起こっているかを確認できます。

$ zsh --xtrace
$ HOME
...
+zsh:1> cd /home/cuonglm
~
....

おすすめ記事