私はbashスクリプトでOS検出ポータブル関数を作成しようとしています、
知りたいのは、ファイル"/etc/issue"
はすべてのLinuxフレーバーに共通ですか?
はい、これはディストリビューション全体の標準ファイルです。ほとんどのディストリビューション、Fedora/CentOS/RHEL/Debian/Ubuntuなどでは標準です。
詳細については man issue
またはその関連ファイル/etc/issue.net
。詳細と、両方のファイルにマクロを含める方法については issue.net man page を参照してください。
Linux From Scratch プロジェクト、 / etc/issueを使用したログオンのカスタマイズ でも詳細を読むことができます。
Slmの回答に加えて、誰でも(ルートアクセス権を持つ)_/etc/issue
のコンテンツを編集できることを覚えておく価値があります。ログイン前の警告や免責事項を表示するためにそうする組織もあれば、セキュリティ上の理由から配布の識別をすべて削除する組織もあります(これらの対策のどちらがどれほど効果的であるかは関係ありません)。
したがって、/ etc/issueはほとんど常に存在する可能性がありますが、コンテンツは必ずしもOSの検出(必ずしもLinuxディストリビューションの場合)に適しているとは限りません。
@EightBitTonyの答えは正しいです。また、Fedora 23にはデフォルトでは存在しません。
行うしないランダムなシステムを識別するためにそれに依存します。私は/etc/system-release
または/etc/os-release
を使用しますが、それがどれほど普遍的であるかはわかりません。
少し読むと/etc/os-release
にはsystemd
が付属しているので、古いディストリビューション(またはsystemd
を嫌うディストリビューション)では機能しないと思います。 /etc/system-release
に関する信頼できる情報が見つかりませんでした。互換性が重要な場合は、多くのファイルをチェックする必要があると思います。または、エッジのケースが重要でない場合は/etc/os-release
を使用します。