クロスプラットフォームでコンピュータ名を取得しますか?

クロスプラットフォームでコンピュータ名を取得しますか?

自分のコンピュータのログインメッセージを作成しており、/etc/bashrcコンピュータに挨拶してコンピュータ名を表示したいと思います。

これは私のコードです。

# (system stuff here)
echo "Welcome, $(whoami)."

どんなユーザーでも使用すると、login私が期待するものを得ることができますWelcome, avgjoe

しかし、出力したいですWelcome, avgjoe, to Tower of Nix。私のコンピュータ名は、(システム環境設定を介して)「Tower of Nix」に設定されています。

では、コンピュータをハードコードせずにコンピュータ名をどのように知ることができますかecho "Welcome, $(whoami), to Tower of Nix."

私はこれを試しましたが、hostname何も出力しません192.168.2.13

scutil --get ComputerName私が要求したものを正確に実行することがわかりましたが、Tower of Nixマニュアルページを見ると次のようにscutil指定されています。

歴史

このscutilコマンドは Mac OS X 公開ベータ版に表示されます。

したがって、Linux、* BSDなど、すべてのオペレーティングシステムでは機能しない可能性があります。

私の質問:すべてのコンピュータからコンピュータ名を取得する方法(またはほぼすべて)UNIXの派生物ですか?

ベストアンサー1

すべてではありませんが、多くのUnixシリーズシステムにこのオプションがunameあります。n

    uname -n

おすすめ記事