วิธีกำหนดเอาต์พุตของคำสั่ง Linux ให้กับตัวแปร
เมื่อคุณรันคำสั่ง มันจะสร้างเอาต์พุตบางประเภท: ผลลัพธ์ของโปรแกรมที่คาดว่าจะสร้างหรือข้อความสถานะ/ข้อผิดพลาดของรายละเอียดการดำเนินการของโปรแกรม บางครั้ง คุณอาจต้องการเก็บผลลัพธ์ของคำสั่งไว้ในตัวแปรเพื่อใช้ในการดำเนินการในภายหลัง
ในโพสต์นี้ เราจะทบทวนวิธีต่างๆ ในการกำหนดเอาต์พุตของคำสั่งเชลล์ให้กับตัวแปร ซึ่งมีประโยชน์โดยเฉพาะสำหรับจุดประสงค์ด้านการเขียนสคริปต์เชลล์
หากต้องการจัดเก็บเอาต์พุตของคำสั่งไว้ในตัวแปร คุณสามารถใช้คุณลักษณะการทดแทนคำสั่งเชลล์ในรูปแบบด้านล่าง:
variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'
ด้านล่างนี้เป็นตัวอย่างบางส่วนของการใช้การทดแทนคำสั่ง
ในตัวอย่างแรกนี้ เราจะเก็บค่าของคำสั่ง who
(ซึ่งแสดงว่าใครเข้าสู่ระบบ) ไว้ในตัวแปรผู้ใช้ CURRENT_USERS
:
CURRENT_USERS=$(who)
จากนั้นเราสามารถใช้ตัวแปรในประโยคที่แสดงโดยใช้คำสั่ง echo ดังนี้:
echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"
ในคำสั่งด้านบน: แฟล็ก -e
หมายถึงการตีความลำดับการหลีกเลี่ยงใด ๆ (เช่น \n
สำหรับการขึ้นบรรทัดใหม่) ที่ใช้ เพื่อหลีกเลี่ยงการเสียเวลาและหน่วยความจำ เพียงดำเนินการทดแทนคำสั่งภายในคำสั่ง echo ดังนี้:
echo -e "The following users are logged on the system:\n\n $(who)"
ต่อไปเป็นการสาธิตแนวคิดโดยใช้รูปแบบที่สอง เราสามารถจัดเก็บจำนวนไฟล์ทั้งหมดในไดเร็กทอรีการทำงานปัจจุบันในตัวแปรชื่อ FILES
และ echo ในภายหลังดังนี้:
FILES=`sudo find . -type f -print | wc -l`
echo "There are $FILES in the current working directory."
สำหรับตอนนี้ ในบทความนี้ เราได้อธิบายวิธีการกำหนดเอาต์พุตของคำสั่งเชลล์ให้กับตัวแปร คุณสามารถเพิ่มความคิดของคุณลงในโพสต์นี้ได้ผ่านทางส่วนคำติชมด้านล่าง