我在考虑在运行我的脚本之前,先评估用户使用的操作系统是 ubuntu 还是 solaris,我使用这个是因为
每个操作系统的命令选项存在一些差异,例如sed ..
,我尝试了以下操作:
sysEval=`grep "ubuntu" | uname -a`
if [ sysEval ]; then
.......some command
else ....... some command
fi
注意:我的脚本只能在 ubuntu 或 solaris 中运行
好像不起作用!
答案1
我可能会做这样的事:
os=$(uname -s)
case $os in
Linux)
distro=$(lsb_release -si)
case $distro in
Ubuntu)
echo "Ubuntu, great!"
;;
*)
echo "Sorry, Linux distribution '$distro' is not supported"
exit 1
;;
esac
;;
SunOS)
echo "SunOS, great!"
;;
*)
echo "Sorry, OS '$os' is not supported"
exit 1
;;
esac
答案2
一个更好的想法不是解析,而是uname -a
解析的输出cat /etc/*release*
。
答案3
有一个环境变量:
echo $OSTYPE
答案4
sysEval=cat /etc/*release* | awk 'FNR == 1 {print $1 }' | cut -d\= -f2