บทความนี้อยู่ในกลุ่มของบทความสอนเขียน shell script ซึ่ง shell script ที่จะสอนนั้นจะใช้ bash เป็น intepreter หรือตัวแปลภาษาครับ

การจะเขียนโปรแกรมใด ๆ จะต้องเข้าใจเรื่องกฏพื้นฐานของตัวแปรก่อนครับ โดยใน bash นั้น ตัวแปรเป็นแบบ untype คือไม่มีชนิดข้อมูล วิธีการใช้งานตัวแปร คือการระบุชื่อตัวแปรโดยหากเป็นการกำหนดค่าให้เรียกชื่อตัวแปรโดยตรง ส่วนการนำค่ามาใช้งานจะใช้เครื่องหมาย $ วางไว้หน้าตัวแปรเพื่อบอกให้ตัวแปรภาษาเข้าใจว่าเป็นการนำค่าของตัวแปรมาใช้ครับ

ตัวอย่างการกำหนดค่าและใช้งานโปรแกรม

$ a=10
$ echo $a
10
$ a=”God Father”
$ echo $a
God Father

หลักการตั้งชื่อตัวแปรของ bash มี 2 ข้อครับ
1. ชื่อตั้งแปรขึ้นต้นด้วยตัวอักษรภาษาอังกฤษหรือเครื่องหมาย _ (underscore)  ตามด้วยตัวอักษรภาษาอังกฤษหรือตัวเลขหรือเครื่องหมาย _(underscore)
2. ห้ามใช้คำสงวน (reserved word) เช่น ?,#,$,@,+,-,*,/,! เป็นต้น( ดูเพิ่มเติมใน Special Characters )

การกำหนดค่าให้กับตัวแปรมีหลักการดังนี้ครับ

ชื่อตัวแปร=ค่าของตัวแปร   (ระหว่างเครื่องหมาย = ห้ามมีช่องว่างครับ)

โดยค่าของตัวแปรนั้นแบ่งออกเป็น 3 ชนิดข้อมูลหลักๆดังนี้
1. ข้อความ
2. ตัวเลข
3. อาเรย์

1. การเก็บค่าแบบข้อความ

ถ้าเป็นข้อความแบบอักษรตัวเดียว(character) สามารถกำหนดค่าได้เลย
$ a=a
$ echo $a
a
$ a=Z
$ echo $a
Z

ถ้าประกอบด้วยหลายตัวอักษรมากกว่า 1 ตัวแต่ไม่มีช่องว่างก็สามารถกำหนดได้เลย
$ a=Hello
$ echo $a
Hello
$ a=ABCDEFGhijklmno@ppl.
$ echo $a
ABCDEFGhijklmno@ppl.

ถ้ามีช่องว่างให้ใช้เครื่องหมาย quote( ‘ ) หรือ double quote (“) ครอบ ข้อความนั้น
$ a=”Pattaya is a great place in Thai.”
echo $a
Pattaya is a great place in Thai

2. การเก็บค่าแบบตัวเลข
การเก็บค่าตัวเลขในตัวแปร bash นั้นสามารถเก็บได้ทั้งแบบ ทศนิยมและจำนวนเต็มครับ

$ a=10
$ echo $a
10
$ b=22.4
echo $b
22.4

3. การเก็บค่าแบบอาเรย์
ค่าที่เป็นอาเรย์นั้น การกำหนดค่าและการเรียกใช้จะพิเศษกว่าชนิดข้อมูลแบบอื่นครับ โดยค่าที่กำหนดในตัวแปรอาเรย์นั้นจะอยู่ในเครื่องหมายวงเล็บ ( ) โดยสมาชิกในอาเรย์นั้นจะใช้ช่องว่างเป็นตัวคั่น และการเรียกใช้จะใช้ ${ ชื่ออารเรย์[ตำแหน่ง] } ในที่นี้จะขอแสดงให้ดูแบบคร่าว ๆ เท่านั้นส่วนรายละเอียดของอาเรย์ผมจะขอยกไปพูดเต็ม ๆ ในบทความเรื่องอาเรย์ครับ

$ a=( A B C D E F )
$ echo $a
A
$ echo ${a[0]}
A
$echo ${a[1]}
B
$ echo ${a[4]}
E
$echo ${a[@]}
A B C D E F

คราวหน้าผมจะพูดถึงการดำเนินการกับตัวแปรครับ : )

Advertisements

6 คิดบน “สอนเขียน shell script ตอนที่ 1 ตัวแปรของ bash

  1. ขอโทษนะครับ ถ้าผมต้องการแสดงตัวเลขที่รับค่ามา สมมติว่าเป็นเลข 5 แล้วผมจะแสดงให้ตัวเลขขยายใหญ่ขึ้นต้องทำอย่างไรครับ ขอความกรุณาด้วยครับ

    1. ติดตั้งโปรแกรม figlet เพิ่มเติมครับ

      sudo apt-get install figlet

      เวลาใช้งานก็เรียกคำสั่ง figlet ตามด้วยข้อความที่ต้องการให้ขยายใหญ่ครับ
      ดูเพิ่มเติมที่นี่ครับ
      https://www.linux.com/learn/docs/686943-linux-tips-fun-with-figlet-and-toilet

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s