ตัวแปรและอินพุตจากผู้ใช้
เรียนรู้การกำหนดและใช้ตัวแปรในสคริปต์ รวมถึงการขออินพุตจากผู้ใช้เพื่อทำให้สคริปต์โต้ตอบได้
ตัวแปรและอินพุตจากผู้ใช้ เป็นบทเรียน Linux Command Line & Bash Scripting Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line & Bash Scripting Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
ตัวแปรคืออะไร
ในการเขียนสคริปต์ Bash ตัวแปร เปรียบเสมือนภาชนะที่มีชื่อและใช้เก็บข้อมูล ลองนึกภาพว่าตัวแปรเป็นพื้นที่แทนค่าข้อมูลที่คุณต้องการใช้หรือเปลี่ยนแปลงในสคริปต์
ตัวแปรช่วยให้สคริปต์ยืดหยุ่น นำกลับมาใช้ซ้ำ และจัดการได้ง่ายขึ้น โดยเก็บค่าต่าง ๆ เช่น ข้อความ ตัวเลข หรือแม้แต่ผลลัพธ์จากคำสั่ง
การประกาศและกำหนดค่าตัวแปร
หากต้องการสร้างตัวแปรใน Bash เพียงกำหนดค่าให้กับชื่อที่ต้องการ ไม่จำเป็นต้องใช้คำสำคัญพิเศษอย่าง var หรือ let
- ใช้รูปแบบไวยากรณ์
VARIABLE_NAME=value - สำคัญ: อย่าเว้นวรรคก่อนหรือหลังเครื่องหมาย
= - ค่าที่กำหนดอาจเป็นข้อความ (สตริง) หรือตัวเลข
ลองกำหนดค่าบางส่วนกัน:
#!/bin/bash
# Assigning a string
MY_NAME="CoddyKit"
# Assigning a number
LESSON_NUMBER=2
echo "Name: $MY_NAME"
echo "Lesson: $LESSON_NUMBER"การเข้าถึงค่าของตัวแปร
เมื่อประกาศตัวแปรแล้ว คุณสามารถเข้าถึงค่าของตัวแปรได้โดยใส่เครื่องหมาย $ ไว้หน้าชื่อ วิธีนี้จะบอกให้ Bash แทนที่ชื่อตัวแปรด้วยค่าที่เก็บไว้
ตัวอย่างเช่น หากมี MY_VAR="Hello" คำสั่ง echo $MY_VAR จะแสดงผลเป็น "Hello"
#!/bin/bash
CITY="New York"
TEMPERATURE=75
echo "The city is $CITY."
echo "The temperature is $TEMPERATURE degrees."
# You can also enclose in curly braces for clarity (optional)
echo "It's ${TEMPERATURE}F in ${CITY}."กฎการตั้งชื่อตัวแปร
ชื่อตัวแปรที่ดีช่วยให้เข้าใจสคริปต์ได้ง่ายขึ้น ต่อไปนี้คือกฎและแนวทางปฏิบัติที่ควรทราบ:
- ชื่อประกอบด้วยตัวอักษร (a-z, A-Z) ตัวเลข (0-9) และขีดล่าง (
_) ได้ - ชื่อ ต้องขึ้นต้นด้วยตัวอักษรหรือขีดล่าง
- ชื่อตัวแปร แยกแยะตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (
myVarแตกต่างจากmyvar) - โดยทั่วไปจะใช้ ALL_CAPS สำหรับตัวแปรสภาพแวดล้อมและค่าคงที่ของสคริปต์ ส่วนตัวแปรภายในสคริปต์มักใช้ mixedCase หรือ snake_case
ตัวแปรแบบอ่านอย่างเดียว
บางครั้งคุณต้องการให้ค่าของตัวแปรคงที่ตลอดการทำงานของสคริปต์ คุณสามารถใช้คำสั่ง readonly เพื่อทำให้ตัวแปรเปลี่ยนแปลงไม่ได้
เมื่อตั้งค่าตัวแปรเป็น readonly แล้ว คุณจะกำหนดค่าใหม่ให้ตัวแปรนั้นไม่ได้ หากพยายามทำเช่นนั้น จะเกิดข้อผิดพลาด
#!/bin/bash
APP_VERSION="1.0.0"
readonly APP_VERSION
echo "App Version: $APP_VERSION"
# Uncommenting the next line would cause an error:
# APP_VERSION="1.0.1"
# echo "New App Version: $APP_VERSION"ทำให้สคริปต์โต้ตอบกับผู้ใช้
จนถึงตอนนี้ สคริปต์ของเราทำงานตามคำสั่งโดยไม่ต้องรับข้อมูลแบบโต้ตอบ แต่ถ้าคุณต้องการให้สคริปต์ถามข้อมูลจากผู้ใช้ล่ะ
นี่คือจุดที่ ข้อมูลป้อนเข้าจากผู้ใช้มีประโยชน์ สคริปต์แบบโต้ตอบสามารถปรับการทำงานตามสิ่งที่ผู้ใช้พิมพ์ ทำให้สคริปต์มีความยืดหยุ่นและใช้งานง่ายขึ้นมาก
คำสั่ง 'read'
คำสั่งหลักสำหรับรับข้อมูลจากผู้ใช้คือ read เมื่อเรียกใช้ read สคริปต์จะหยุดชั่วคราวและรอให้ผู้ใช้พิมพ์ข้อความแล้วกด Enter
จากนั้นข้อความที่ผู้ใช้ป้อนจะถูกเก็บไว้ในตัวแปรที่คุณระบุ
#!/bin/bash
echo "Please enter your name:"
read USER_NAME
echo "Hello, $USER_NAME! Welcome to CoddyKit."เพิ่มข้อความแจ้งด้วย 'read -p'
ตัวอย่างก่อนหน้านี้ใช้งานได้ แต่ต้องใช้สองบรรทัด คือบรรทัดหนึ่งสำหรับข้อความแจ้งจาก echo และอีกบรรทัดสำหรับ read คุณสามารถรวมทั้งสองคำสั่งเข้าด้วยกันได้โดยใช้ตัวเลือก -p (ข้อความแจ้ง) กับ read
วิธีนี้ทำให้การโต้ตอบของสคริปต์เป็นระเบียบและตรงไปตรงมามากขึ้น
#!/bin/bash
read -p "What is your favorite animal? " ANIMAL
echo "Oh, so you like $ANIMAL! That's cool."ซ่อนข้อมูลป้อนเข้าด้วย 'read -s'
สำหรับข้อมูลสำคัญ เช่น รหัสผ่าน คุณคงไม่ต้องการให้ข้อมูลที่ผู้ใช้ป้อนแสดงบนหน้าจอ ตัวเลือก -s (เงียบ) ของ read จะระงับการแสดงผลขณะที่ผู้ใช้พิมพ์
หลังจากใช้ read -s แนวทางที่ดีคือเพิ่มคำสั่ง echo เพื่อพิมพ์บรรทัดใหม่ มิฉะนั้นข้อความแจ้งถัดไปอาจปรากฏในบรรทัดเดียวกับข้อมูลที่ถูกซ่อน
#!/bin/bash
read -sp "Enter your secret passphrase: " PASSPHRASE
echo # This adds a newline after the hidden input
echo "Passphrase received (not displayed for security)."ตรวจสอบอย่างรวดเร็ว: ตัวแปรและข้อมูลป้อนเข้า
พิจารณาสคริปต์ Bash ต่อไปนี้:
#!/bin/bash
FAVORITE_FOOD="Pizza"
read -p "What's your favorite drink? " DRINK
echo "I like $FAVORITE_FOOD and $DRINK!"ทบทวน: ตัวแปรและข้อมูลป้อนเข้าจากผู้ใช้
ทำได้ดีมาก! คุณได้เรียนรู้พื้นฐานการทำให้สคริปต์ Bash ทำงานแบบไดนามิกและโต้ตอบกับผู้ใช้แล้ว
- ตัวแปรใช้เก็บค่าด้วย
NAME=value - เข้าถึงค่าของตัวแปรด้วย
$NAME readonlyทำให้ตัวแปรเป็นค่าคงที่- คำสั่ง
readใช้รับข้อมูลป้อนเข้าจากผู้ใช้ - ใช้
read -p "Prompt"สำหรับข้อความแจ้งในบรรทัดเดียวกัน - ใช้
read -sสำหรับข้อมูลสำคัญที่ไม่ต้องการแสดงผล
เครื่องมือเหล่านี้มีความสำคัญอย่างยิ่งต่อการสร้างสคริปต์ที่ยืดหยุ่นและใช้งานง่าย
คำถามที่พบบ่อย
บทเรียน “ตัวแปรและอินพุตจากผู้ใช้” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวแปรและอินพุตจากผู้ใช้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line & Bash Scripting Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรและอินพุตจากผู้ใช้”
เรียนรู้การกำหนดและใช้ตัวแปรในสคริปต์ รวมถึงการขออินพุตจากผู้ใช้เพื่อทำให้สคริปต์โต้ตอบได้ คุณปฏิบัติ Linux Command Line & Bash Scripting Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line & Bash Scripting Mastery หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line & Bash Scripting Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวแปรและอินพุตจากผู้ใช้” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line & Bash Scripting Mastery นี้ได้ไหม
ได้ บทเรียน Linux Command Line & Bash Scripting Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สคริปต์ Bash แรกและ Shebang
- ตัวแปรและอินพุตจากผู้ใช้
- คำสั่งแบบมีเงื่อนไข (if, else, elif)
- การทำงานกับอาร์เรย์ใน Bash