วิธีใช้คำสั่ง case สำหรับการกำหนดเวอร์ชันระดับ OS


0

ฉันพยายามที่จะเขียนสคริปต์ซึ่งโดยทั่วไปจะได้รับการดำเนินการตามรุ่นของระบบปฏิบัติการ .. นี่คือสิ่งที่ฉันทำจนถึงตอนนี้ ..

#!/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

ด้านล่างเป็นกรณีที่ฉันพยายามบรรลุ: -

  • สคริปต์ควรได้รับการดำเนินการตามเวอร์ชันของระบบปฏิบัติการ, สคริปต์ควรมองหารุ่นที่ระบุฮาร์ดโค้ดในสคริปต์จาก rhel 5-5.11 & rhel 6-6.11 และควรรันคำสั่งบางอย่าง

  • เมื่อสคริปต์ไปถึงถ้ามีการวนซ้ำแล้วมันควรมองหา arch x86_64 / i686 และคำสั่งที่ดำเนินการบางอย่าง

ขอบคุณล่วงหน้า!!


พวกชื่นชมความช่วยเหลือใด ๆ ..
biz

คำสั่ง if ไม่สมเหตุสมผล คุณต้อง==เปรียบเทียบสตริงและคุณมี$osrelease0ทั้งสองด้านของเครื่องหมายเท่ากับ เริ่มต้นด้วยการแก้ไขที่
Nifle

และดีกว่าที่จะใช้แบบฟอร์มนี้osrelease0=$ (lsb_release -r | awk {'print $ 2'}) `` แทนที่จะเป็นเครื่องหมายคำพูดย้อนกลับ
Nifle

ขอบคุณสำหรับการตอบสนองมันยังคงไม่ทำงานสำหรับฉัน
biz

ขอบคุณ nifle สำหรับการตอบสนองมันยังคงไม่ทำงานสำหรับฉัน รหัส: pastiebin.com/58c12fc6d4ba8 สคริปต์พื้นฐานควรตรวจสอบระดับระบบปฏิบัติการปัจจุบันและจากนั้นควรไปที่คำสั่งกรณีและควรตรวจสอบว่ารุ่นที่มีอยู่ในรายการ ถ้าใช่แล้วความสำเร็จหรือความล้มเหลวอื่น ๆ .. คุณช่วยฉันแก้ไขสิ่งนี้ได้ไหม?
biz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.