จะบันทึกเอาต์พุตคำสั่งเป็นตัวแปรใน Bash ได้อย่างไร PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

จะบันทึกเอาต์พุตคำสั่งเป็นตัวแปรใน Bash ได้อย่างไร

บทนำ

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

ในคำแนะนำสั้นๆ นี้ เราจะมาดูกันว่าคุณสามารถจัดเก็บเอาต์พุตของคำสั่งเป็นตัวแปรใน Bash ได้อย่างไร

พื้นฐานในการตั้งค่าตัวแปร

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

การแทนที่คำสั่งสามารถทำได้ผ่าน backticks หรือเครื่องหมายดอลลาร์พร้อมวงเล็บ:

`command`

$(command)

มีการถกเถียงกันว่า `คำสั่ง` (แบ็คทิกส์) หรือ $(คำสั่ง) (เครื่องหมายดอลลาร์และวงเล็บ) ควรใช้เป็น "แนวปฏิบัติที่ดีที่สุด" $(command) ทำงานได้ดีในการซ้อนและปรับปรุงความสามารถในการอ่านในบางกรณี แต่คุณสามารถใช้ไวยากรณ์ใดก็ได้ในตัวอย่างที่กำลังดำเนินการ

ดังที่กล่าวไว้ - การกำหนดเอาต์พุตของคำสั่งให้กับตัวแปรใน Bash นั้นง่ายเหมือน:

VARIABLE=$(command)
echo "${VARIABLE}"

เล่น ${variable} เป็นที่รู้จักกันในนาม การขยายพารามิเตอร์และใช้เพื่อประเมินและดึงค่าที่เกี่ยวข้องกับตัวแปรอ้างอิง

มาดูตัวอย่างง่ายๆ ของการตั้งค่าตัวแปรสำหรับคำสั่งเพื่อเปลี่ยนสีผลลัพธ์:

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

ในตัวอย่างข้อมูล เราได้ใช้ tput คำสั่งและกำหนดค่าที่ส่งกลับของคำสั่งเหล่านั้นเพื่อพิมพ์ข้อความที่มีสีสัน เดอะ setaf เปลี่ยนสีพื้นหน้า และ 3 (สีเขียว) และ 9 (สีส้ม) เป็นรหัสสี

ตอนนี้เราจะไปยังตัวอย่างอื่นที่มีหลายเงื่อนไขเพื่อตั้งค่าตัวแปรสำหรับคำสั่งต่างๆ:

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

ในสคริปต์ข้างต้น the whoami คำสั่งส่งคืนชื่อผู้ใช้ของผู้ใช้ปัจจุบัน เดอะ uname -a ส่งคืนข้อมูลระบบและ date ส่งกลับเวลาและวันที่ปัจจุบัน

หมายเหตุ เราสามารถเชื่อมโยงการกำหนดตัวแปรโดยการเพิ่มหลายคำสั่งในการเรียกที่ซ้อนกันเพียงครั้งเดียว เดอะ CREATE ตัวแปรมีเอาต์พุตของ touch คำสั่ง ซึ่งจะสร้างไฟล์และตั้งชื่อไฟล์เป็นเอาต์พุตของ date +"%d%m%Y คำสั่ง

ดูคู่มือเชิงปฏิบัติสำหรับการเรียนรู้ Git ที่มีแนวทางปฏิบัติที่ดีที่สุด มาตรฐานที่ยอมรับในอุตสาหกรรม และเอกสารสรุปรวม หยุดคำสั่ง Googling Git และจริงๆ แล้ว เรียน มัน!

สุดท้าย เราเพิ่ม ก multiline แนวคิดการกำหนดตัวแปรคำสั่งโดยการเพิ่มแบ็กสแลช () ระหว่าง ls คำสั่ง -l ตั้งค่าสถานะเพื่อแสดงเฉพาะไฟล์ข้อความโดยใช้ *.txt. เครื่องหมายแบ็กสแลชเป็นอักขระหลีกที่แจ้งให้เชลล์ไม่ต้องตีความอักขระถัดไป

ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร echo คำสั่ง เราได้เพิ่มไฟล์ -e แฟล็กเพื่อใช้อักขระพิเศษ ได้แก่ n (ขึ้นบรรทัดใหม่) เพื่อพิมพ์ผลลัพธ์ในบรรทัดใหม่

เราได้ผลลัพธ์ต่อไปนี้หลังจากรันสคริปต์:

$ ./variable.sh

สรุป

ในคำแนะนำสั้นๆ นี้ เราได้ดูวิธีตั้งค่าเอาต์พุตของคำสั่งเป็นตัวแปรใน Bash เราได้พิจารณาความแตกต่างระหว่างไวยากรณ์สำหรับ คำสั่งทดแทนสังเกตการปรับปรุงการอ่านง่ายของ $(command) มากกว่าการทดแทนโดยใช้ backtick จากนั้น เราได้ดูตัวอย่างต่างๆ ของทั้งการกำหนดอย่างง่ายและการกำหนดเอาต์พุตแบบลูกโซ่/แบบซ้อน

ประทับเวลา:

เพิ่มเติมจาก สแต็ค