我需要爲每個系統製作不同的腳本。今天,即使在微軟窗口,mac,linux,hp-ux,solaris等上也可以運行bash ...如何識別bash腳本中的哪個操作系統
如何確定我正在使用哪些操作系統?我不需要確切的版本,我只需要知道,如果我在Windows,Linux和Solaris ...
我需要爲每個系統製作不同的腳本。今天,即使在微軟窗口,mac,linux,hp-ux,solaris等上也可以運行bash ...如何識別bash腳本中的哪個操作系統
如何確定我正在使用哪些操作系統?我不需要確切的版本,我只需要知道,如果我在Windows,Linux和Solaris ...
有一個標準的外殼命令「UNAME」返回當前平臺作爲字符串
要在外殼程序中使用這個典型的節可能是
#!/bin/sh
if [ `uname` = "Linux" ] ;
then
echo "we are on the operating system of Linux"
fi
if [ `uname` = "FreeBSD" ] ;
then
echo "we are on the operating system of FreeBSD"
fi
更具體的信息是可用的,但不幸的是它根據平臺而變化。在許多版本的Linux(和ISTR,Solaris)上,都有一個/ etc/issue文件,其中包含安裝的發行版的版本名稱和編號。因此,在Ubuntu
if [ -e "/etc/issue" ] ;
then
issue=`cat /etc/issue`
set -- $issue
if [ $1 = "Ubuntu" ] ;
then
echo "we are on Ubuntu version " $2
fi
fi
這會給版本信息
我會看看
uname -a
輸出和尋找特定字符串,這可以幫助您識別系統。
或多個特定
uname -s
在Windows中,你的意思是這樣的cygwin?
bash有一個叫做$OSTYPE
的全局變量。鍵入回聲$OSTYPE
看到:
echo "$OSTYPE"
// linux-gnu
OSTYPE自動設置爲描述了正在運行bash的操作系統的字符串。默認值是系統相關的。
一種替代方法是使用uname
命令(不帶任何參數)或uname -s
它所相同uname
默認爲-s
。在Linux
例
uname
// Linux
是非常有可能的是一樣的,但我不會刪除這一點,只是因爲我想有些用戶會搜索什麼,我問,我在谷歌上搜索這個並找不到鏈接的答案 – Petr 2013-05-03 11:52:02