bash
と$HOSTNAME
の間に違いがzsh
ありますか$HOST
?
そうでなければ、変数をいつ使用するかをbash
選択する歴史的な理由はありますか?$HOSTNAME
tcsh
zsh
$HOST
答え1
答えの一部である変数の内容は次のとおりです。
すべての変数の値は呼び出しから来ます。gethostname(2)
:
tcsh
sh.c:main()
基本:unknown
。bash
shell.c:shell_initialize()
。基本:??host??
zsh
パラメータ.c:createparamtable()
デフォルト値は次のとおりです。
tcsh
:unknown
。bash
:??host??
zsh
: (無効)
興味深いことに、zsh
戻り値は確認されません!
答え2
$HOSTNAME
1996年12月にリリースされた2.0のbashに追加されました。。
変更ログには、1995年8月1日に実装されたと記載されています。
$HOST
1991年にリリースされたzsh-2.0に追加されました。
私は、著者がHOSTNAMEがHOSTよりも良い名前であると考えていると仮定することができますbash
。bash
$HOSTTYPE
tcsh
$HOSTTYPE
それ自体ではるかに歪んだ歴史を持っているようです。
tcsh 6.05 (1994 年 6 月) リリース ノートには次のものがあります。
- $HOSTTYPEはすぐに消えます。新しい変数$ OSTYPE、$ MACHTYPE、$ VENDORはgnu変数に似ています。
何に対する曖昧さを取り除くことタイプHOST
私たちは変数名について話しています。
しかし$HOSTTYPE
結局彼は去らなかったtcsh
。
bash
1.14.0は1994年6月に導入されましたが、2.0より前には追加されておらず、追加されたことがないため、何がわかりません$OSTYPE
。$MACHTYPE
$VENDOR
bash
グヌ上記を参照してください。
zsh
もともとはそこにありましたが、$HOSTTYPE
1995年にzsh-2.6-betaから削除され$OSTYPE
、$MACHTYPE
に置き換えられました$VENDOR
。
bash
とにかくラップトップamd64 PC上で実行されているUbuntu GNU / Linuxシステムを見ると、これらの変数の値はシェルによって大きく異なり、バージョン間で意味が大きく異なるように見えます。
bash
ホスト名のある/prompt拡張子(最初のドットの前の部分)から外れ、tcsh
反対(同等)を選択することに決めたことがわかります。zsh
%M
%m
\h
%m