มีคำแนะนำมากมายบนอินเทอร์เน็ตแสดงวิธีการสร้างสคริปต์เชลล์โดยใช้ BASH และคู่มือนี้มีจุดมุ่งหมายเพื่อให้มีการหมุนที่แตกต่างกันเล็กน้อยเพราะเขียนโดยคนที่มีประสบการณ์การเขียนสคริปต์เชลล์น้อยมาก
ตอนนี้คุณอาจคิดว่านี่เป็นแนวคิดโง่ ๆ แต่ฉันพบว่าคำแนะนำบางฉบับพูดกับคุณราวกับว่าคุณเป็นผู้เชี่ยวชาญและคำแนะนำอื่น ๆ ใช้เวลานานในการตัดต่อ
ขณะที่ประสบการณ์ในการเขียนสคริปต์ของ LINUX / UNIX ของฉันมี จำกัด แต่ฉันเป็นผู้พัฒนาซอฟต์แวร์โดยการค้าและฉันเป็นคนที่เขียนสคริปต์ภาษาต่างๆเช่น PERL, PHP และ VBScript
จุดของคู่มือนี้คือคุณจะได้เรียนรู้ในขณะที่ฉันเรียนรู้และข้อมูลที่ฉันได้รับฉันจะส่งต่อไปยังคุณ
เริ่มต้นใช้งาน
มีทฤษฎีมากมายที่สามารถถ่ายทอดให้คุณได้อย่างตรงไปตรงมาเช่นการอธิบายเปลือกหอยที่แตกต่างกันและข้อดีของการใช้ BASH เหนือ KSH และ CSH
คนส่วนใหญ่เมื่อเรียนรู้สิ่งใหม่ ๆ ต้องการก้าวกระโดดและเริ่มต้นด้วยบทเรียนเชิงปฏิบัติบางอย่างก่อนและด้วยเหตุนี้ฉันจะไม่เบื่อหน่ายกับเรื่องไม่สำคัญที่ไม่สำคัญในขณะนี้
ทั้งหมดที่คุณต้องการสำหรับการทำตามคำแนะนำนี้คือโปรแกรมแก้ไขข้อความและเครื่อง BASH (เชลล์เริ่มต้นสำหรับการแจกแจง Linux ส่วนใหญ่)
บรรณาธิการข้อความ
คำแนะนำอื่น ๆ ที่ฉันได้อ่านได้แนะนำว่าคุณต้องมีโปรแกรมแก้ไขข้อความซึ่งมีโค้ดสีของคำสั่งและโปรแกรมแก้ไขที่แนะนำ ได้แก่ VIM หรือ EMACS
การเขียนโค้ดสีเป็นสิ่งที่ดีเนื่องจากเน้นคำสั่งตามที่คุณพิมพ์ แต่สำหรับผู้เริ่มต้นที่แน่นอนคุณสามารถใช้การเรียนรู้ VIM และ EMACS ไม่กี่สัปดาห์แรกโดยไม่ต้องเขียนบรรทัดเดียว
ออกจากสองฉันชอบ EMACS แต่จะซื่อสัตย์ฉันชอบใช้แก้ไขง่ายเช่น nano, gedit หรือ leafpad
ถ้าคุณกำลังเขียนสคริปต์ในคอมพิวเตอร์ของคุณเองและคุณรู้ว่าคุณจะสามารถเข้าถึงสภาพแวดล้อมแบบกราฟิกได้เสมอไปคุณสามารถเลือกตัวแก้ไขที่เหมาะกับคุณมากที่สุดและสามารถเป็นได้ทั้งแบบกราฟิกเช่น GEdit หรือตัวแก้ไขที่ทำงานโดยตรงในเทอร์มินัล เช่น nano หรือ vim
สำหรับจุดประสงค์ของคู่มือนี้ฉันจะใช้ nano เนื่องจากมีการติดตั้งอย่างแพร่หลายในส่วนใหญ่ของการแจกแจง Linux ดังนั้นจึงเป็นไปได้ว่าคุณจะสามารถเข้าถึงได้
การเปิดหน้าต่างปลายทาง
ถ้าคุณใช้การกระจาย Linux กับเดสก์ท็อปแบบกราฟิกเช่น Linux Mint หรือ Ubuntu คุณสามารถเปิดหน้าต่างเทอร์มินัลโดยการกด CTRL + ALT + T
ตำแหน่งที่จะใส่สคริปต์ของคุณ
สำหรับจุดประสงค์ของบทแนะนำนี้คุณสามารถใส่สคริปต์ของคุณลงในโฟลเดอร์ใต้โฟลเดอร์บ้านของคุณได้
ภายในหน้าต่างเทอร์มินัลให้แน่ใจว่าคุณอยู่ในโฟลเดอร์บ้านของคุณโดยการพิมพ์คำสั่งต่อไปนี้:
cd ~
คำสั่ง cd หมายถึง directory การเปลี่ยนแปลงและ tilde (~) เป็นทางลัดสำหรับโฟลเดอร์บ้านของคุณ
คุณสามารถตรวจสอบว่าคุณอยู่ในตำแหน่งที่ถูกต้องโดยการพิมพ์คำสั่งต่อไปนี้:
รหัสผ่าน
คำสั่ง pwd จะบอกไดเรกทอรีการทำงานปัจจุบันของคุณ (ตำแหน่งที่คุณอยู่ในโครงสร้างไดเรกทอรี) ในกรณีของฉันมันกลับ / home / gary
ตอนนี้เห็นได้ชัดว่าคุณไม่ต้องการนำสคริปต์ของคุณไปที่โฟลเดอร์บ้านโดยตรงเพื่อสร้างโฟลเดอร์ที่เรียกว่าสคริปต์โดยพิมพ์คำสั่งต่อไปนี้
สคริปต์ mkdir
เปลี่ยนเป็นโฟลเดอร์สคริปต์ใหม่โดยพิมพ์คำสั่งต่อไปนี้:
บทแรกของคุณ
เป็นเรื่องปกติที่เมื่อเรียนรู้วิธีการเขียนโปรแกรมเพื่อสร้างรายการแรกให้พิมพ์คำว่า "Hello World"
จากภายในโฟลเดอร์สคริปต์ของคุณให้ป้อนคำสั่งต่อไปนี้:
nano helloworld.sh
ตอนนี้ใส่รหัสต่อไปนี้ลงในหน้าต่างนาโน
#! / bin / bash echo "สวัสดีชาวโลก"
กด CTRL + O เพื่อบันทึกไฟล์และกด CTRL + X เพื่อออกจาก nano
สคริปต์ดังกล่าวถูกสร้างขึ้นดังนี้:
#! / bin / bash ต้องรวมอยู่ด้านบนของสคริปต์ทั้งหมดที่คุณเขียนเนื่องจากช่วยให้ล่ามและระบบปฏิบัติการทราบวิธีจัดการไฟล์ โดยทั่วไปเพียงจำใส่ในและลืมเกี่ยวกับสาเหตุที่คุณทำ
บรรทัดที่สองมีคำสั่งเดียวที่เรียกว่า echo ซึ่งจะแสดงผลข้อความที่ตามมาทันที
โปรดทราบว่าถ้าคุณต้องการแสดงคำมากกว่าหนึ่งคำคุณต้องใช้เครื่องหมายคำพูดคู่ (") รอบ ๆ คำ
ขณะนี้คุณสามารถเรียกใช้สคริปต์ได้โดยการพิมพ์คำสั่งต่อไปนี้:
sh helloworld.sh
คำว่า "สวัสดีชาวโลก" ควรปรากฏขึ้น
อีกวิธีหนึ่งในการเรียกใช้สคริปต์มีดังนี้:
./helloworld.sh
โอกาสที่ว่าถ้าคุณเรียกใช้คำสั่งใน terminal ของคุณทันทีที่คุณจะได้รับข้อผิดพลาดสิทธิ์
หากต้องการให้สิทธิ์ในการเรียกใช้สคริปต์ด้วยวิธีนี้ให้พิมพ์ข้อมูลต่อไปนี้
sudo chmod + x helloworld.sh
ดังนั้นสิ่งที่เกิดขึ้นจริงมี? ทำไมคุณถึงสามารถเรียกใช้ sh helloworld.sh ได้โดยไม่ต้องเปลี่ยนสิทธิ์ แต่การเรียกใช้. helloworld.sh เกิดปัญหาขึ้นหรือไม่?
วิธีแรกโหลดข้อมูลล่าม bash ซึ่งใช้เวลา helloworld.sh เป็นข้อมูลป้อนเข้าและแสดงว่าจะทำอย่างไร ล่าม bash มีสิทธิ์เรียกใช้และต้องการเรียกใช้คำสั่งในสคริปต์เท่านั้น
วิธีที่สองช่วยให้ระบบปฏิบัติการทำงานว่าจะทำอย่างไรกับสคริปต์และดังนั้นจึงต้องใช้บิตปฏิบัติการในการดำเนินการ
สคริปต์ข้างต้นไม่เป็นไร แต่เกิดอะไรขึ้นถ้าคุณต้องการแสดงเครื่องหมายคำพูด
มีหลายวิธีเพื่อให้บรรลุเป้าหมายนี้ ตัวอย่างเช่นคุณสามารถใส่เครื่องหมายแบ็กสแลชก่อนเครื่องหมายคำพูดได้ดังนี้:
echo "สวัสดีชาวโลก "
นี้จะผลิตผลผลิต "สวัสดีโลก"
รอสักครู่แม้ว่าสิ่งที่คุณต้องการจะแสดง "สวัสดีโลก "?
ดีที่คุณสามารถหลบหนีตัวหนีเช่นกัน
echo "" สวัสดีโลก ""
นี่จะเป็นการสร้างผลลัพธ์ "สวัสดีชาวโลก "
ตอนนี้ฉันรู้ว่าคุณคิดยังไง แต่ฉันต้องการแสดง "" สวัสดีโลก ""
การใช้ echo กับตัวหนีทั้งหมดเหล่านี้จะได้รับโง่มาก มีคำสั่งอื่นที่คุณสามารถใช้เรียก printf
ตัวอย่างเช่น:
printf '% s n' ' "" สวัสดีโลก ""'
โปรดทราบว่าข้อความที่เราต้องการแสดงอยู่ระหว่างเครื่องหมายคำพูดเดียว คำสั่ง printf จะแสดงผลข้อความจากสคริปต์ของคุณ % s หมายความว่าจะแสดงสตริง n ส่งออกบรรทัดใหม่
สรุป
เราไม่ได้ครอบคลุมพื้นที่มากในส่วนหนึ่ง แต่หวังว่าคุณจะมีสคริปต์แรกของคุณทำงาน
ในส่วนถัดไปเราจะดูที่การปรับปรุงในสคริปต์โลก hello เพื่อแสดงข้อความในสีที่ต่างกันยอมรับและจัดการพารามิเตอร์อินพุตตัวแปรและแสดงความคิดเห็นในโค้ดของคุณ