Em vez de analisar uname -a
, uma ideia melhor seria analisar a saída de cat /etc/*release*
.
eu estava pensando de maneira que antes de executar meu script, avalie qual sistema operacional que
usuário usar Ubuntu ou Solaris, estou usando isso porque há algumas diferenças na opção de comando em cada sistema operacional, como sed ..
, eu estava tentando o seguinte:
sysEval='grep "ubuntu" | uname -a'
if [ sysEval ]; then
.......some command
else ....... some command
fi
OBSERVAÇÃO Que meu script será executado apenas no Ubuntu ou Solaris
parece não funcionar!
Em vez de analisar uname -a
, uma ideia melhor seria analisar a saída de cat /etc/*release*
.
Eu provavelmente faria algo assim:
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
Existe uma variável de ambiente:
echo $OSTYPE
sysEval=cat /etc/*release* | awk 'FNR == 1 {print }' | cut -d\= -f2
Tags command-line bash