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, ตรวจสอบที่นี่: