Jak korzystać z instrukcji case w przypadku wersji na poziomie systemu operacyjnego


0

Próbuję napisać skrypt, który w zasadzie zostanie wykonany zgodnie z wersją systemu operacyjnego. Tak zrobiłem do tej pory…

#!/bin/bash
publicyum="yum.oracle.com"
osrelease0=`lsb_release -r | awk {'print $2'}`
osrelease1=`lsb_release -r | awk {'print $2'}`
arch=`uname -p`

wget -q --spider http://$publicyum

if [ $? -eq 0 ]; then

case $osrelease0 in
                '5')  ;;
                '5.1')  ;;
                '5.2')  ;;
                '5.3')  ;;
                '5.4')  ;;
                '5.5')  ;;
                '5.6')  ;;
                '5.7')  ;;
                '5.8')  ;;
                '5.9')  ;;
                '5.10)  ;;
                '5.11)  ;;
esac

if [ "$osrelease0" = "$osrelease0" ]; then
                echo "Success01"; uname -nm
        else
                echo "Failure01"
        fi

case $osrelease0 in
                '6')  ;;
                '6.1')  ;;
                '6.2')  ;;
                '6.3')  ;;
                '6.4')  ;;
                '6.5')  ;;
                '6.6')  ;;
                '6.7')  ;;
                '6.8')  ;;
                '6.9')  ;;
                *) echo "Non-Supported OS Version...Aborting!!!"
                exit 1;;
esac

if [ "$osrelease0" = "$osrelease0" ]; then
                echo "Success02"; uname -nm
        else
                echo "Failure02"
        fi

else
    echo "Internet is not accessible, Aborting!!"
fi

Poniżej znajdują się przypadki, które próbuję osiągnąć:

  • Skrypt powinien zostać wykonany zgodnie z wersją systemu operacyjnego, skrypt powinien wypatrywać określonych wersji zapisanych na stałe w skrypcie ex rhel 5-5.11 i rhel 6-6.11 i powinien wykonywać niektóre polecenia

  • Gdy skrypt dojdzie do pętli if else, powinien poszukać określonych arch x86_64 / i686 i wykonać polecenia

Z góry dziękuję!!


Chłopaki, każda pomoc jest doceniana.
biz

Instrukcje if nie mają sensu. Musisz ==porównać ciągi znaków i masz $osrelease0po obu stronach znaku równości. Zacznij od naprawienia tego.
Nifle

I lepiej jest użyć tego formularza osrelease0=$ (lsb_release -r | awk {'print $ 2'}) 'zamiast cudzysłowów
Nifle

Dziękuje za odpowiedź, wciąż nie działa dla mnie.
biz

Dzięki nifle za odpowiedź, to wciąż nie działa dla mnie. code: pastiebin.com/58c12fc6d4ba8 Zasadniczo skrypt powinien sprawdzać bieżący poziom systemu operacyjnego, a następnie powinien przejść do instrukcji case i powinien sprawdzić, czy ta wersja istnieje na liście. Jeśli tak, to sukces lub porażka. Czy możesz mi pomóc to naprawić?
biz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.