Shell script

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


เชลล์สคริปต์เบื้องต้น ตอนที่ 9 - ตอนจบ

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

เชลล์สคริปต์เบื้องต้น ตอนที่ 8 - วงวน while, ฟังก์ชัน

ตอนนี้จะแนะวงวน while ซึ่งเป็นวงวนที่มีใช้ในภาษาคอมพิวเตอร์ทั่วไปมีรูปแบบการใช้งานดังนี้.

while command
do
    command
    ...
done

หรือจะเขียนเป็นบรรทัดเดียวก็ได้

while command; do command; ...; done

คำสั่งที่อยู่หลัง while มักจะเป็นคำสั่ง test (อย่าลืมว่า [ ก็คือคำสั่ง test) หรือจะเป็นคำสั่งอะไรก็ได้. เราลองมาดูตัวอย่างการคำนวณผลบวกของอนุกรม 1, 2, 3, ..., n สามารถเขียนในบรรทัดคำสั่งได้ดังนี้.

เชลล์สคริปต์เบื้องต้น ตอนที่ 7 - วงวน for

วงวนที่ใช้บ่อยในเชลล์คงจะหนีไม่พ้น for. จริงๆแล้ว for ก็เป็นคำสั่ง (ประกอบภายใน) เหมือนกับคำสั่งทั่วๆไปแต่จะเรียกคำสั่งแบบนี้ว่า compound command. ไวยกรณ์ของคำสั่งได้แก่

for name in words 
do
    command
    ...
done

เนื่องจากคำสั่งต่างๆที่สามารถใช้ ; คั่นแทนการขึ้นบรรทัดได้, ถ้าจะเขียนเป็นบรรทัดเดียวก็จะเป็นแบบนี้.

เชลล์สคริปต์เบื้องต้น ตอนที่ 6 - เงื่อนไข if

หลังจากที่เรียนรู้ตัวแปรแล้วก็เข้าเรื่องการใช้เงื่อนไข if. คำสั่งสำหรับสร้างเงื่อนไขมีรูปแบบดังนี้

if command
then
    command
    ...
elif command
then
    command
    ...
else
    command
    ...
fi

command ที่อยู่หลัง if หรือ elif มักจะเป็นคำสั่งสำหรับตรวจสอบเช่นตรวจสอบตัวแปรว่ามีการตั้งค่าหรือไม่, ตรวจสอบไฟล์ว่ามีจริงหรือไม่ เป็นต้น. ส่วน command ที่อยู่หลัง then หรือ else คือคำสั่งเมื่อเงื่อนไขเป็นจริงหรือไม่จริงแล้วแต่กรณี.

เชลล์สคริปต์เบื้องต้น ตอนที่ 5 - ตัวแปรแถวลำดับ, +-*/

ไม่ได้เขียนหลายวัน, ยังไม่ลืมว่าจะเขียนคอลัมน์นี้ให้จบ.

ตัวแปรแถวลำดับ (array variable)

ตัวแปรแถวลำดับ (array) ที่ใช้ในเชลล์สร้างด้วยไวยกรณ์

name[index]=value

index เป็นตัวเลขเริ่มตั้งแต่ 0 เหมือนตัวแปรแถวลำดับของภาษาอื่นๆ. แต่เวลาสร้างจะข้ามไปก็ได้เช่น

เชลล์สคริปต์เบื้องต้น ตอนที่ 4 - ตัวแปรพิเศษ

วันก่อนพูดเรื่องตัวแปรสภาพแวดล้อมไปนี้วันนี้ขอพูดเรื่องตัวแปรพิเศษครับ.

ตัวแปรพิเศษ

ถ้าอ่าน man bash ในช่วงของ special parameters จะเห็นว่ามีตัวแปรพิเศษอยู่หลายตัว. ตัวแปรเหล่านี้โดยปรกติเชลล์จะเตรียมไว้ให้อยู่แล้วไม่ต้องสร้างเอง, และมักจะเป็นตัวแปรที่เปลี่ยนค่าไม่ได้ (read-only). ตัวแปรที่ใช้บ่อยและสำคัญๆได้แก่

เชลล์สคริปต์เบื้องต้น ตอนที่ 3 - ตัวแปรสภาพแวดล้อม

ตัวแปรสภาพแวดล้อม

ตัวแปรที่ใช้ในเชลล์จะมีสองแบบคือตัวแปรธรรมดากับตัวแปรสภาพแวดล้อม (environment variable). ตัวแปรสภาพแวดล้อมจริงๆแล้วก็คือตัวแปรธรรมดาแต่มีผลที่โปรแกรมที่รันในเชลล์นั้นจะสืบทอดตัวแปรสภาพแวดล้อมและค่านั้นไปด้วย. ตัวอย่างตัวแปรสภาพแวดล้อมที่เราคุ้นเคยกันเช่น PATH เป็นต้น.

เชลล์สคริปต์เบื้องต้น ตอนที่ 2

ต่อจากตอนที่ 1.

รันเชลล์สคริปต์

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

เชลล์สคริปต์เบื้องต้น ตอนที่ 1

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