我需要制作每个系统行为不同的脚本。今天甚至可以在 microsoft windows、mac、linux、hp-ux、solaris 等上运行 bash...
我如何确定我在这些操作系统中的哪一个?我不需要确切的版本,我只需要知道我是否在 windows、linux、solaris 上......
我需要制作每个系统行为不同的脚本。今天甚至可以在 microsoft windows、mac、linux、hp-ux、solaris 等上运行 bash...
我如何确定我在这些操作系统中的哪一个?我不需要确切的版本,我只需要知道我是否在 windows、linux、solaris 上......
有一个标准的 shell 命令“uname”,它以字符串形式返回当前平台
要在 shell 程序中使用它,一个典型的节可能是
#!/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 之类的吗?