檢測三種不同操作系統(tǒng)(GNU/Linux, Mac OS X, Windows NT)的Bash腳本捶枢。
設(shè)計:
1、使用“uname”命令獲取系統(tǒng)信息飞崖,帶上“-s”參數(shù)個打印內(nèi)核名稱烂叔。
2、使用“expr”和“substr”處理內(nèi)核名稱字符串固歪。
3蒜鸡、逐個條件判斷即可。
腳本:
#!/usr/bin/env bash
if["$(uname)"=="Darwin"];then
? ? # Mac OS X 操作系統(tǒng)
elif["$(expr substr $(uname -s) 1 5)"=="Linux"];then
? ? # GNU/Linux操作系統(tǒng)
elif["$(expr substr $(uname -s) 1 10)"=="MINGW32_NT"];then
? ? # Windows NT操作系統(tǒng)
fi
注意:
1牢裳、在腳本的開頭逢防,使用“#!/usr/bin/env bash”替換“#!/bin/sh”,防止在不同操作系統(tǒng)上“/bin/sh”鏈接到不同版本的默認shell蒲讯。比如在Ubuntu 64 bits 12.04操作系統(tǒng)上忘朝,可能會出現(xiàn)“unexpected operator”的錯誤。
2判帮、Mac OS X10.6.8 (Snow Leopard) 操作系統(tǒng)上默認沒有“expr”程序局嘁,除非有單獨安裝過,所以在腳本中僅使用“uname”晦墙。