web-dev-qa-db-ja.com

ターミナルからMac OS Xバージョンを調べる方法は?

私はGUIからMac OS Xバージョンを見つける方法を知っています:Apple Menu (top left) > About This Mac

Mac OS Xバージョンを教えてくれるTerminalコマンドはありますか?

148
Željko Filipin

いくつかの選択肢があります。

sw_vers -productVersion 

system_profiler SPSoftwareDataType

どちらもあなたが必要とすることをするでしょう、そして解析可能な出力フォーマットを持つでしょう(それがあなたがしているものであるなら)。

206
delfuego

コマンドsw_versはバージョンを表示します。

古いMac OSの場合は、 Wikipedia に役立つ情報があります。

7
EdmundsZ

あなたが気にしているのがメジャーバージョン(10.10、10.9)だけであれば、あなたはすることができます

MAJOR_MAC_VERSION=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')

私はこれを10.8.x、10.9.xそして今は10.10で動かされるなら異なることをしなければならないいくつかのスクリプトで使用します。

4
Joe Block

スクリプトロジックのセマンティックバージョニングに基づいてmacOSのバージョン番号を分割することを検討している場合は、ここで私が使用するコードの小さな断片です。

product_version=$(sw_vers -productVersion)
os_vers=( ${product_version//./ } )
os_vers_major="${os_vers[0]}"
os_vers_minor="${os_vers[1]}"
os_vers_patch="${os_vers[2]}"
os_vers_build=$(sw_vers -buildVersion)

# Sample semver output
echo "${os_vers_major}.${os_vers_minor}.${os_vers_patch}+${os_vers_build}"
# 10.12.6+16G29

スクリプトロジックでこれらの変数を使用して、macOSのバージョンに基づいてさまざまなコマンドを実行できます。これにより、パッチやビルドのバージョンを少し細かく制御できます。

# Sample bash code
if [[ ${os_vers_minor} -ge 11 ]]; then
    DMG_FORMAT=ULFO
Elif [[ ${os_vers_minor} -ge 4 ]]; then
    DMG_FORMAT=UDBZ
else
    DMG_FORMAT=UDZO
fi
2
n8felton