การแทรกค่าลงในสตริง

Fish Shell:
การแทรกค่าลงในสตริง

วิธีการ:

ใน Fish, คุณใช้เครื่องหมายคำพูดคู่ "" และวางตัวแปรหรือคำสั่งที่คุณต้องการใส่เข้ากับเครื่องหมายดอลลาร์ $ ไว้ตรงในสตริง

set name "world"
echo "Hello, $name!"

ผลลัพธ์:

สวัสดี, โลก!

เพื่อรวมผลลัพธ์ของคำสั่งเข้าไปในสตริง:

echo "ฉันมี (count (ls)) ไฟล์ในไดเรกทอรีนี้."

ผลลัพธ์อาจเป็น:

ฉันมี 9 ไฟล์ในไดเรกทอรีนี้.

ตัวแปรและคำสั่งจะถูกประเมินและแทรกเข้าไปในตำแหน่งที่คุณวางไว้อย่างเรียบร้อย

การศึกษาลึกลงไป

ก่อน Fish และ Shell สมัยใหม่อื่น ๆ คุณมักจะใช้การผสมผสานของเครื่องหมายคำพูดและการต่อสตริงที่มากขึ้น หรือพึ่งพาเครื่องมือภายนอก เพื่อให้ได้ตัวแปรเข้าไปในสตริง

ใน bash, ตัวอย่างเช่น, จะดูเป็นอย่างนี้:

name="world"
echo "Hello, "$name"!"

ไม่ดูดีเลยใช่ไหม?

Fish ไม่เพียงแต่ทำให้กระบวนการนี้ง่ายขึ้น แต่ยังจัดการกับข้อผิดพลาดได้ดีกว่า เช่น ถ้าตัวแปรไม่มีอยู่, Fish จะใส่สตริงว่างเข้าไป ลดโอกาสของการเกิดความผิดพลาดจากการใส่ตัวแปรไม่ถูกต้อง

ทางเลือกอื่นสำหรับการใส่ตัวแปรโดยตรง ได้แก่ การใช้คำสั่ง printf:

set animal "narwhal"
printf "The %s is an awesome creature!" $animal

ผลลัพธ์:

narwhal เป็นสิ่งมีชีวิตที่น่าทึ่ง!

ในกรณีนี้, %s เป็นตัวยึดที่สำหรับตัวแปรสตริง $animal ที่จะถูกแทนที่โดย printf.

ในแง่ของการประยุกต์ใช้งาน, เมื่อ Fish ประมวลผลบรรทัดคำสั่ง, มันจะแยกสตริงที่อยู่ในเครื่องหมายคำพูดคู่และเปลี่ยนตัวแปรเป็นค่าของมันในทันที นับเป็นวิธีการที่เรียบร้อยและเลียนแบบการใส่ตัวแปรที่พบในภาษาการเขียนโปรแกรมระดับสูงอย่าง Ruby หรือ PHP

ดูเพิ่มเติม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดการสตริงและการเขียนสคริปต์ใน Fish, ตรวจสอบที่นี่: