Corredor

ウェブ、プログラミングの勉強メモ。

Bash スクリプトの中で OS 判定する

入門bash 第3版

入門bash 第3版

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

Bash スクリプトの中で OS を判定する方法。

以下のように uname を確認すれば判定できる。

if [ "$(uname)" == "Darwin" ]; then
  echo Mac
elif [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then
  echo Windows
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
  echo Linux
else
  echo Unknown OS
fi

各 if 文の中に1つ以上処理がないとエラーになってしまった。コメントだけだとダメみたい。なのでとりあえず判定した OS 名を echo しておくことにした。

.bash_profile.bashrc を様々な環境で利用したいが、OS によって競って内容が異なるような場合にコレで判定できるだろう。