
私の配布バージョンを変数に渡すことができるようにスクリプトを作成しようとしています。
次のコマンドは、結果を得るために書いたものです。
lsb_release -ar | grep -i release | cut -s -f2
不要な出力:
No LSB modules are available.
18.04
ご覧のとおり、メッセージNo LSB modules are available
は不要な部分です。
私はスクリプトがサーバー間で移植可能であることを好むので、このコマンドを使用する以外に追加のパッケージをインストールしたくありませんlsb_release -a
。
答え1
検索結果で偶然発見しました。次の事項はお客様のシステムに適用されませんか? @stephen-kittが提案したようにUbuntu 23.04用に更新されました。
$ lsb_release -sr 2>/dev/null
23.04
short release
これにより出力が提供されます。
執筆時に変数が欲しい
export RELEASE=$(lsb_release -sr 2>/dev/null)
必要なことをすべきか、それとも?
答え2
メッセージは標準エラーとして送信されるため、にリダイレクトすると/dev/null
メッセージが削除されます(で生成された他のエラーメッセージと共にlsb_release
)。
lsb_release -ar 2>/dev/null | grep -i release | cut -s -f2
答え3
私のディストリビューションのバージョンを取得するためのスクリプトを作成しようとしています。
欲しいなら 簡単な解決策:
$ lsb_release -sr
22.04
lsb_release
Linuxディストリビューションで利用できない場合:
$ (. /etc/*-release; printf '%s\n' "$DISTRIB_RELEASE";)
22.04