Я думал, что перед тем, как запустить мой скрипт, оцените, какая операционная система, которую пользователь использует Ubuntu или Solaris, использует это, потому что есть некоторые различия
в опции команды в каждой ОС, такой как sed ..
, я пробовал следующее:
sysEval=`grep "ubuntu" | uname -a`
if [ sysEval ]; then
.......some command
else ....... some command
fi
ПРИМЕЧАНИЕ. Мой скрипт будет работать только в Ubuntu или Solaris
, похоже, не работает! [ 116]
Я бы, наверное, сделал что-то вроде этого:
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
Вместо парсинга uname -a
лучшей идеей будет парсинг выходных данных cat /etc/*release*
.
sysEval=cat /etc/*release* | awk 'FNR == 1 {print $1 }' | cut -d\= -f2