ค้นหาเว็บไซต์

วิธีกำหนดเอาต์พุตของคำสั่ง 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."

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