外部ツールを使用しない:
ただソース(sourceコマンドはドット.
)で、/etc/os-release
そこに定義されているすべての変数にアクセスできます:
$ . /etc/os-release
$ echo "$VERSION"
14.04, Trusty Tahr
編集。14.04,
(terdonの質問に応じて)部品を削除したい場合は、次のことができます。
$ . /etc/os-release
$ read _ UBUNTU_VERSION_NAME <<< "$VERSION"
$ echo "$UBUNTU_VERSION_NAME"
Trusty Tahr
他のディストリビューションでは、VERSION
フィールドの形式が異なる可能性があるため、これは少し不格好です。例えば、私のdebianでは、
$ . /etc/os-release
$ read _ UBUNTU_VERSION_NAME <<< "$VERSION"
$ echo "$UBUNTU_VERSION_NAME"
(wheezy)
次に、(スクリプトで)次のようなものを想像できます。
#!/bin/bash
if [[ -r /etc/os-release ]]; then
. /etc/os-release
if [[ $ID = ubuntu ]]; then
read _ UBUNTU_VERSION_NAME <<< "$VERSION"
echo "Running Ubuntu $UBUNTU_VERSION_NAME"
else
echo "Not running an Ubuntu distribution. ID=$ID, VERSION=$VERSION"
fi
else
echo "Not running a distribution with /etc/os-release available"
fi
/etc/os-release
。たぶん、インストールされたUbuntuシステムの完全なコードネーム(trusty tahr)を取得するにはどうすればいいのでしょうか?。端末にエコーするだけですか、それとも変数に割り当てる必要がありますか?これは、{Ubuntu、Debian}以外のシステムで使用される予定ですか?