ฉันพยายามที่จะเขียนสคริปต์ซึ่งโดยทั่วไปจะได้รับการดำเนินการตามรุ่นของระบบปฏิบัติการ .. นี่คือสิ่งที่ฉันทำจนถึงตอนนี้ ..
#!/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 ไม่สมเหตุสมผล คุณต้อง
—
Nifle
==
เปรียบเทียบสตริงและคุณมี$osrelease0
ทั้งสองด้านของเครื่องหมายเท่ากับ เริ่มต้นด้วยการแก้ไขที่
และดีกว่าที่จะใช้แบบฟอร์มนี้
—
Nifle
osrelease0=
$ (lsb_release -r | awk {'print $ 2'}) `` แทนที่จะเป็นเครื่องหมายคำพูดย้อนกลับ
ขอบคุณสำหรับการตอบสนองมันยังคงไม่ทำงานสำหรับฉัน
—
biz
ขอบคุณ nifle สำหรับการตอบสนองมันยังคงไม่ทำงานสำหรับฉัน รหัส: pastiebin.com/58c12fc6d4ba8 สคริปต์พื้นฐานควรตรวจสอบระดับระบบปฏิบัติการปัจจุบันและจากนั้นควรไปที่คำสั่งกรณีและควรตรวจสอบว่ารุ่นที่มีอยู่ในรายการ ถ้าใช่แล้วความสำเร็จหรือความล้มเหลวอื่น ๆ .. คุณช่วยฉันแก้ไขสิ่งนี้ได้ไหม?
—
biz