คู่มือเริ่มต้นใช้งานกับ BASH - เงื่อนไขและตัวแปร

บทนำ

ยินดีต้อนรับสู่ส่วนที่สามของ "คู่มือสำหรับผู้เริ่มต้นใช้งาน BASH" หากคุณพลาดบทความสองข้อก่อนหน้านี้คุณอาจต้องการทราบว่าอะไรทำให้คำแนะนำนี้แตกต่างไปจากคู่มือการเขียนสคริปต์ BASH อื่น ๆ

คู่มือเล่มนี้เขียนขึ้นโดยสามเณรที่สมบูรณ์เพื่อ BASH และเพื่อให้เป็นผู้อ่านที่คุณเรียนรู้ขณะที่ฉันเรียนรู้ ขณะที่ฉันเป็นสามเณรเพื่อ BASH ฉันมาจากพื้นหลังการพัฒนาซอฟต์แวร์แม้ว่าส่วนใหญ่ของสิ่งที่ฉันได้เขียนได้สำหรับแพลตฟอร์ม Windows

คุณสามารถดูคำแนะนำสองคำแรกได้โดยไปที่:

ถ้าคุณยังใหม่กับสคริปต์ BASH ผมขอแนะนำให้อ่านคู่มือสองตัวแรกก่อนที่จะดำเนินการต่อไป

ในคู่มือนี้ผมจะเน้นวิธีการใช้งบเงื่อนไขเพื่อทดสอบการป้อนข้อมูลของผู้ใช้และเพื่อควบคุมการทำงานของสคริปต์

ติดตั้ง rsstail

ในการปฏิบัติตามคู่มือนี้คุณจะต้องติดตั้งโปรแกรมบรรทัดคำสั่งที่เรียกว่า rsstail ซึ่งใช้อ่าน ฟีด RSS

หากคุณใช้ Debian / Ubuntu / Mint แบบ กระจายตามประเภทดังต่อไปนี้:

sudo apt-get ติดตั้ง rsstail

สำหรับ Fedora / CentOS ฯลฯ ให้พิมพ์ข้อมูลต่อไปนี้:

ติดตั้ง rsstail yum

สำหรับประเภท openSUSE ต่อไปนี้:

zypper ติดตั้ง rsstail

คำสั่ง IF

เปิดเทอร์มินัลและสร้างไฟล์ที่เรียกว่า rssget.sh โดยพิมพ์ข้อความต่อไปนี้:

sudo nano rssget.sh

ภายในโปรแกรมแก้ไข nano ให้ป้อนข้อความต่อไปนี้:

#! / bin / ทุบตี
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;

บันทึกไฟล์โดยการกด CTRL และ O แล้วออกโดยการกด CTRL และ X.

เรียกใช้สคริปต์โดยพิมพ์ข้อความต่อไปนี้:

sh rssget.sh

สคริปต์จะแสดงรายการชื่อจากฟีด RSS linux.about.com

ไม่ใช่สคริปต์ที่มีประโยชน์มากเกินไปเพราะดึงชื่อจากฟีด RSS เพียงอย่างเดียว แต่จะช่วยประหยัดเวลาในการจดจำเส้นทางไปยังฟีด RSS ของ Linux.about.com

เปิดสคริปต์ rssget.sh ใน nano อีกครั้งและแก้ไขไฟล์ให้ดูดังนี้:

#! / bin / ทุบตี

ถ้า [$ 1 = "verbose"]
แล้วก็
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Fi

เรียกใช้สคริปต์อีกครั้งโดยพิมพ์ข้อความต่อไปนี้:

sh rssget.sh verbose

เวลาฟีด RSS นี้กลับมาพร้อมกับชื่อลิงก์และคำอธิบาย

ลองวิเคราะห์สคริปต์ในรายละเอียด:

#! / bin / bash จะปรากฏในทุกๆสคริปต์ที่เราเขียน บรรทัดถัดไปโดยทั่วไปจะดูที่พารามิเตอร์การป้อนข้อมูลแรกของผู้ใช้และเปรียบเทียบกับคำว่า "verbose" ถ้าพารามิเตอร์การป้อนข้อมูลและคำว่า "verbose" ตรงกับเส้นระหว่าง นั้น และ fi จะวิ่ง

สคริปต์ข้างต้นเห็นได้ชัดว่ามีข้อบกพร่อง จะเกิดอะไรขึ้นหากคุณไม่มีพารามิเตอร์สำหรับการป้อนข้อมูลเลย คำตอบคือคุณได้รับข้อผิดพลาดตามบรรทัดของตัวดำเนินการที่ไม่คาดคิด

ข้อบกพร่องสำคัญอื่น ๆ ก็คือถ้าคุณไม่ได้ให้คำว่า "verbose" แล้วไม่มีอะไรเกิดขึ้นเลย หากคุณไม่ได้ให้คำว่า verbose สคริปต์จะแสดงรายการชื่อ

ใช้ nano อีกครั้งเพื่อแก้ไขไฟล์ rssget.sh และแก้ไขโค้ดดังต่อไปนี้

#! / bin / ทุบตี

ถ้า [$ 1 = "verbose"]
แล้วก็
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi

บันทึกไฟล์และเรียกใช้งานโดยพิมพ์ข้อมูลต่อไปนี้:

sh rssget.sh verbose

รายชื่อคำอธิบายและลิงก์จะปรากฏขึ้น ตอนนี้ให้รันอีกครั้งดังนี้:

sh ชื่อ rssget.sh

คราวนี้มีเพียงชื่อรายการเท่านั้น

ส่วนพิเศษของสคริปต์อยู่ในบรรทัดที่ 4 และแนะนำคำสั่ง else โดยทั่วไปสคริปต์ตอนนี้กล่าวว่าถ้าพารามิเตอร์แรกคือคำว่า "verbose" ได้รับรายละเอียดการเชื่อมโยงและชื่อเรื่องสำหรับฟีด RSS แต่ถ้าพารามิเตอร์แรกคืออะไรอื่นเพียงได้รับรายการของชื่อ

สคริปต์มีการปรับปรุงเล็กน้อย แต่ยังคงมีข้อบกพร่อง หากคุณไม่ป้อนพารามิเตอร์คุณจะยังคงได้รับข้อผิดพลาด แม้ว่าคุณจะระบุพารามิเตอร์ด้วยการบอกว่าคุณไม่ต้องการให้คำอธิบายไม่ได้หมายความว่าคุณต้องการแค่ชื่อเท่านั้น คุณอาจสะกดคำผิดอย่างไม่ถูกต้องเช่นหรือคุณอาจจะพิมพ์นกพิราบซึ่งแน่นอนไม่มีความหมาย

ก่อนที่เราจะพยายามล้างปัญหาเหล่านี้ฉันต้องการแสดงคำสั่งเพิ่มเติมที่จะไปกับคำสั่ง IF

แก้ไขสคริปต์ rssget.sh ของคุณให้มีลักษณะดังนี้:

#! / bin / ทุบตี

ถ้า [$ 1 = "ทั้งหมด"]
แล้วก็
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "description"]
แล้วก็
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi

ฉันตัดสินใจที่จะกำจัดคำที่อ่านออกมาและแทนที่ด้วยทุกอย่าง นั่นไม่ใช่ส่วนที่สำคัญ สคริปต์ข้างต้นแนะนำ elif ซึ่งเป็นวิธีสั้น ๆ ในการพูดถึง IF

ขณะนี้สคริปต์ทำงานดังนี้ ถ้าคุณเรียกใช้ rssget.sh sh ทั้งหมด แล้วคุณจะได้รับการอธิบายการเชื่อมโยงและชื่อ ถ้าคุณเพียงแค่เรียกใช้ คำอธิบาย sh rssget.sh คุณก็จะได้รับชื่อและคำอธิบาย หากคุณจัดหาคำอื่นใดคุณจะได้รับรายชื่อ

นี้แนะนำวิธีการได้อย่างรวดเร็วขึ้นมาพร้อมกับรายการของงบเงื่อนไข วิธีอื่นในการทำ ELIF คือการใช้สิ่งที่เรียกว่างบ IF ที่ซ้อนกัน

ต่อไปนี้เป็นตัวอย่างที่แสดงวิธีการทำงานของงบ IF ที่ซ้อนกัน:

#! / bin / ทุบตี

ถ้า [$ 2 = "aboutdotcom"]
แล้วก็
ถ้า [$ 1 = "ทั้งหมด"]
แล้วก็
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "description"]
แล้วก็
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi
อื่น
ถ้า [$ 1 = "ทั้งหมด"]
แล้วก็
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "description"]
แล้วก็
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi
Fi

รู้สึกฟรีเพื่อพิมพ์ทั้งหมดที่คุณต้องการหรือคัดลอกและวางลงในไฟล์ rssget.sh ของคุณ

สคริปต์ข้างต้นแนะนำพารามิเตอร์ที่ 2 ซึ่งช่วยให้คุณสามารถเลือกฟีด RSS "about.com" หรือ "lxer.com"

เมื่อต้องการเรียกใช้คุณพิมพ์ต่อไปนี้:

sh rssget.sh ทั้งหมด aboutdotcom

หรือ

sh rssget.sh ทั้งหมด lxer

คุณสามารถแทนที่ทั้งหมดด้วยคำอธิบายหรือชื่อเพื่อให้คำอธิบายหรือแค่ชื่อเท่านั้น

โดยทั่วไปรหัสข้างต้นกล่าวว่าถ้าพารามิเตอร์ที่สองคือ aboutdotcom แล้วดูที่คำสั่งที่สองถ้าเป็นหนึ่งเดียวกันจากสคริปต์ก่อนหน้าอื่นถ้าพารามิเตอร์ที่สอง lxer แล้วมองไปที่ด้านในหากคำสั่งอีกครั้งเพื่อตัดสินใจว่าจะแสดงชื่อคำอธิบาย หรือทุกอย่าง

สคริปต์ดังกล่าวจัดทำเป็นตัวอย่างของคำสั่ง IF ที่ซ้อนกันและมีหลายสิ่งที่ผิดพลาดกับสคริปต์ที่จะนำบทความอื่นไปอธิบายให้พวกเขาทั้งหมด ปัญหาหลักคือไม่สามารถปรับขนาดได้

ลองจินตนาการว่าคุณต้องการเพิ่มฟีด RSS เช่น Everyday Linux User หรือ Linux Today? สคริปต์จะกลายเป็นเรื่องใหญ่และหากคุณตัดสินใจว่าต้องการเปลี่ยนคำสั่ง IF ภายในคุณจะต้องเปลี่ยนในหลาย ๆ ที่

ขณะที่มีเวลาและสถานที่สำหรับซ้อนกันถ้าพวกเขาควรจะใช้เท่าที่จำเป็น โดยปกติจะมีวิธี refactor code ของคุณเพื่อที่คุณจะได้ไม่จำเป็นต้องใช้ IF ที่ซ้อนกัน ฉันจะมาถึงเรื่องนี้ในบทความในอนาคต

ตอนนี้เรามาดูการแก้ไขปัญหาของผู้ที่เข้าสู่พารามิเตอร์ duff แล้ว ตัวอย่างเช่นในสคริปต์ข้างต้นหากผู้ใช้ป้อนสิ่งอื่นที่ไม่ใช่ "aboutdotcom" เป็นพารามิเตอร์ที่ 2 รายการบทความจะปรากฏจากฟีด RSS จาก LXER โดยไม่คำนึงว่าผู้ใช้ป้อน lxer หรือไม่

นอกจากนี้หากผู้ใช้ไม่ป้อน "ทั้งหมด" หรือ "คำอธิบาย" เป็นพารามิเตอร์ที่ 1 ค่าดีฟอลต์คือรายการของชื่อที่อาจจะเป็นสิ่งที่ผู้ใช้กำหนดไว้

ดูที่สคริปต์ต่อไปนี้ (หรือคัดลอกและวางลงในไฟล์ rssget.sh ของคุณ

#! / bin / ทุบตี

ถ้า [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
แล้วก็
ถ้า [$ 1 = "ทั้งหมด"] || [$ 1 = "description"] || [$ 1 = "ชื่อ"]
แล้วก็
ถ้า [$ 2 = "aboutdotcom"]
แล้วก็

ถ้า [$ 1 = "ทั้งหมด"]
แล้วก็
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "description"]
แล้วก็
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi
อื่น
ถ้า [$ 1 = "ทั้งหมด"]
แล้วก็
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "description"]
แล้วก็
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi
Fi
Fi
Fi

สิ่งแรกที่ควรทราบก็คือตอนนี้สคริปต์กำลังได้รับค่อนข้างใหญ่และคุณสามารถดูได้ว่าคำสั่ง IF แบบซ้อนกันแบบควบคุมสามารถเป็นได้อย่างไร

บิตที่สำคัญในสคริปต์นี้คือ IF statement || คำสั่ง THEN ส่วนในบรรทัดที่ 2 และบรรทัดที่ 4

|| ย่อมาจาก OR ดังนั้นบรรทัด ถ้า [$ 2 = "aboutdotcom"] || [2 บาท = "lxer"] ตรวจสอบว่าพารามิเตอร์ที่ 2 มีค่าเท่ากับ "aboutdotcom" หรือ "lxer" หรือไม่ ถ้าไม่ใช่แล้ว IF statement จะสมบูรณ์เพราะไม่มีคำสั่ง อื่น สำหรับ IF ด้านนอกมากที่สุด

เช่นเดียวกันในบรรทัดที่ 4 บรรทัด ถ้า [$ 1 = "ทั้งหมด"] || [$ 1 = "description"] || [$ 1 = "title"] ตรวจสอบว่าพารามิเตอร์ที่ 1 มีค่าเท่ากับ "all" หรือ "description" หรือ "title"

ตอนนี้ถ้าผู้ใช้ใช้ sh rssget.sh ชีสชีส ไม่มีอะไรที่จะได้รับการส่งคืนก่อนที่พวกเขาจะได้รับรายชื่อจาก LXER

ตรงข้ามกับ || คือ &&. ตัวดำเนินการ && หมายถึง AND

ฉันจะทำให้สคริปต์ดูมากยิ่งขึ้นเช่นฝันร้าย แต่จะทำให้การตรวจสอบที่สำคัญทั้งหมดเพื่อให้แน่ใจว่าผู้ใช้มีให้ 2 พารามิเตอร์

#! / bin / ทุบตี

ถ้า [$ # -eq 2]
แล้วก็

ถ้า [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
แล้วก็
ถ้า [$ 1 = "ทั้งหมด"] || [$ 1 = "description"] || [$ 1 = "ชื่อ"]
แล้วก็
ถ้า [$ 2 = "aboutdotcom"]
แล้วก็

ถ้า [$ 1 = "ทั้งหมด"]
แล้วก็
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "description"]
แล้วก็
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi
อื่น
ถ้า [$ 1 = "ทั้งหมด"]
แล้วก็
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "description"]
แล้วก็
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
อื่น
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
Fi
Fi
Fi
Fi
Fi

บิตเดียวที่เป็นพิเศษในสคริปต์นั้นคือคำสั่ง IF ด้านนอกอื่น: if [$ # -eq 2] ถ้าคุณอ่านบทความเกี่ยวกับพารามิเตอร์การป้อนข้อมูลคุณจะรู้ว่า $ # ส่งกลับจำนวนของพารามิเตอร์อินพุท eq หมายถึงค่าเท่ากับ คำสั่ง IF จะตรวจสอบว่าผู้ใช้ป้อนพารามิเตอร์ 2 พารามิเตอร์และถ้าไม่ได้ทำเพียงแค่ออกโดยไม่ทำอะไร (ไม่เป็นมิตรโดยเฉพาะ)

ฉันทราบดีว่าการกวดวิชานี้มีขนาดค่อนข้างใหญ่ ไม่มีอะไรให้ครอบคลุมมากขึ้นในสัปดาห์นี้ แต่ฉันต้องการช่วยให้เป็นระเบียบเรียบร้อยก่อนที่เราจะจบบท

คำสั่งสุดท้ายที่คุณต้องเรียนรู้เกี่ยวกับงบเงื่อนไขคือคำสั่ง CASE

#! / bin / ทุบตี


ถ้า [$ # -eq 2]
แล้วก็
กรณี $ 2 in
aboutdotcom)
กรณี $ 1 ใน
ทั้งหมด)
rsstail -d -l -u z.about.com/6/o/m/linux_p2.xml
;;
คำอธิบาย)
rsstail -d -u z.about.com/6/o/m/linux_p2.xml
;;
หัวข้อ)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;
esac
;;
lxer)
กรณี $ 1 ใน
ทั้งหมด)
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
;;
คำอธิบาย)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;
หัวข้อ)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;
esac
;;
esac
Fi

คำสั่งกรณีเป็นวิธีที่ดีกว่าในการเขียน IF ELSE IF ELSE IF ELSE IF

เช่นตรรกะนี้

ถ้าผลไม้ = กล้วย
แล้วนี้
อื่นถ้าผลไม้ = ส้ม
แล้วนี้
อื่นถ้าผลไม้ = องุ่น
แล้วนี้
END IF

สามารถเขียนใหม่เป็น:

กรณีผลไม้เข้า
กล้วย)
ทำเช่นนี้
;;
ส้ม)
ทำเช่นนี้
;;
องุ่น)
ทำเช่นนี้
;;
esac

โดยทั่วไปรายการแรกหลังจากกรณีเป็นสิ่งที่คุณจะเปรียบเทียบ (เช่นผลไม้) แล้วแต่ละรายการก่อนวงเล็บคือสิ่งที่คุณกำลังเปรียบเทียบและถ้ามันตรงกับบรรทัดก่อน; จะวิ่ง คำสั่ง case ถูกยกเลิกโดยใช้ reverse esac (ซึ่งเป็นกรณีถอยหลัง)

ในสคริปต์ rssget.sh คำสั่ง case จะลบการทำรังที่น่ากลัวบางอย่างออกไปแม้ว่าจะไม่ได้ปรับปรุงให้ดีพอ

เพื่อปรับปรุงสคริปต์จริงๆฉันต้องแนะนำคุณกับตัวแปร

ดูรหัสต่อไปนี้:

#! / bin / ทุบตี

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
การแสดงผล = ""
url = ""

if [$ # -lt 2] || [$ # -gt 2]
แล้วก็
echo "การใช้งาน: rssget.sh [ทั้งหมด | คำอธิบาย | ชื่อเรื่อง] [aboutdotcom | lxer]";
ทางออก;
Fi

กรณี $ 1 ใน
ทั้งหมด)
display = "- d -l -u"
;;
คำอธิบาย)
display = "- d -u"
;;
หัวข้อ)
การแสดงผล = "- ยู"
;;
esac

กรณี $ 2 in
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
esac
rsstail $ display $ url;

ตัวแปรถูกกำหนดโดยระบุชื่อและกำหนดค่าให้กับมัน ในตัวอย่างข้างต้นสิ่งต่อไปนี้คือการกำหนดตัวแปร:

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
การแสดงผล = ""
url = ""

สคริปต์สามารถจัดการได้ง่ายขึ้นโดยใช้ตัวแปร ตัวอย่างเช่นพารามิเตอร์แต่ละตัวถูกจัดการแยกกันและไม่มีงบ IF ที่ซ้อนกันอยู่

ตัวแปรการแสดงผลถูกตั้งค่าแล้วแต่ว่าคุณเลือกทั้งหมดคำอธิบายหรือชื่อเรื่องและตัวแปร url ถูกตั้งค่าเป็นค่าของตัวแปร aboutdotcom หรือค่าของตัวแปร lxer ขึ้นอยู่กับว่าคุณเลือก aboutdotcom หรือ lxer หรือไม่

คำสั่ง rsstail ตอนนี้ต้องใช้ค่าของ display และ url เพื่อให้รันอย่างถูกต้อง

ขณะที่ตัวแปรมีการตั้งค่าเพียงแค่ระบุชื่อให้ใช้จริงคุณจะต้องวางเครื่องหมาย $ ในหน้า กล่าวอีกนัยหนึ่งตัวแปร = ค่ากำหนดตัวแปรให้เป็นค่าในขณะที่ตัวแปร $ หมายถึงให้เนื้อหาของตัวแปร

ต่อไปนี้เป็นสคริปต์ขั้นสุดท้ายสำหรับบทแนะนำนี้

#! / bin / ทุบตี

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
everydaylinuxuser = "http://feeds.feedburner.com/everydaylinuxuser/WLlg"
linuxtoday = "http://feedproxy.google.com/linuxtoday/linux"
การใช้ = "การใช้งาน: rssget.sh [ทั้งหมด | คำอธิบาย | ชื่อเรื่อง] [lxer | aboutdotcom | everydaylinuxuser | linuxtoday]"
การแสดงผล = ""
url = ""

if [$ # -lt 2] || [$ # -gt 2]
แล้วก็
echo $ การใช้;
ทางออก;
Fi

กรณี $ 1 ใน
ทั้งหมด)
display = "- d -l -u"
;;
คำอธิบาย)
display = "- d -u"
;;
หัวข้อ)
การแสดงผล = "- ยู"
;;
*)
echo $ การใช้;
ทางออก;
;;
esac

กรณี $ 2 in
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
linuxtoday)
url = $ linuxtoday;
;;
everydaylinuxuser)
url = $ everydaylinuxuser;
;;
*)
echo $ การใช้;
ทางออก;
esac

rsstail $ display $ url;

สคริปต์ข้างต้นแนะนำฟีด RSS เพิ่มเติมและมีตัวแปรการใช้งานซึ่งบอกให้ผู้ใช้ทราบว่าจะใช้สคริปต์อย่างไรหากไม่ป้อนตัวแปร 2 ตัวแปรหรือป้อนตัวเลือกไม่ถูกต้องสำหรับตัวแปร

สรุป

นี่เป็นบทความมหากาพย์และอาจจะไปไกลเกินไป ในคู่มือถัดไปฉันจะแสดงตัวเลือกการเปรียบเทียบทั้งหมดสำหรับคำชี้แจง IF และยังมีอีกหลายเรื่องที่จะพูดถึงเกี่ยวกับตัวแปรต่างๆ

นอกจากนี้ยังมีอีกหลายสิ่งที่สามารถทำได้เพื่อปรับปรุงสคริปต์ข้างต้นและจะครอบคลุมในคำแนะนำในอนาคตเมื่อเราสำรวจลูป grep และนิพจน์ทั่วไป

ตรวจสอบวิธีการ (เลื่อนลงมาที่หมวดหมู่เพื่อดูรายการบทความ) ของ l inux.about.com เพื่อหาคำแนะนำที่มีประโยชน์มากขึ้นจาก การบูต Windows Windows และ Ubuntu เพื่อ ตั้งค่าเครื่องเสมือนโดยใช้กล่อง GNOME