ОС оценивать в bash скрипте

Я думал, что перед тем, как запустить мой скрипт, оцените, какая операционная система, которую пользователь использует Ubuntu или Solaris, использует это, потому что есть некоторые различия
в опции команды в каждой ОС, такой как sed .. , я пробовал следующее:

sysEval=`grep "ubuntu" | uname -a`

if [ sysEval ]; then

.......some command 

else ....... some command
fi

ПРИМЕЧАНИЕ. Мой скрипт будет работать только в Ubuntu или Solaris
, похоже, не работает! [ 116]

3
задан 11 March 2011 в 11:28

4 ответа

Существует переменная окружения:

echo $OSTYPE
0
ответ дан 11 March 2011 в 11:28

Я бы, наверное, сделал что-то вроде этого:

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
0
ответ дан 11 March 2011 в 11:28

Вместо парсинга uname -a лучшей идеей будет парсинг выходных данных cat /etc/*release*.

0
ответ дан 11 March 2011 в 11:28
 sysEval=cat /etc/*release* | awk 'FNR == 1 {print $1 }' | cut -d\= -f2
0
ответ дан 11 March 2011 в 11:28

Другие вопросы по тегам:

Похожие вопросы: