Bash:
การต่อสตริง

วิธีการ:

นี่คือทางลัดในการกอดสตริงของคุณจนแนบแน่นใน Bash:

# การต่อสตริงโดยการวางสตริงข้างๆ กัน
greeting="Hello, "
name="world!"
welcome=$greeting$name
echo $welcome  # แสดงผล: Hello, world!

# การใช้วงเล็บปีกกาเพื่อความชัดเจน
version="version"
number=1
full_version=${version}_${number}
echo $full_version  # แสดงผล: version_1

# การต่อสตริงด้วยตัวแปรและตัวอักขระตายตัว
timestamp=$(date +%Y%m%d)  # ได้วันที่ปัจจุบันในรูปแบบ YYYYMMDD
filename="backup_${timestamp}.tar.gz"
echo $filename  # แสดงผล: backup_20230315.tar.gz

ลึกรายละเอียด

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

ทางเลือกทางประวัติศาสตร์คือคำสั่ง expr, ซึ่งตอนนี้รู้สึกเหมือนเป็นโบราณ:

older_way=$(expr $greeting $name)

แต่ Bash ก็บอกว่า, “ใครต้องการความยุ่งยากนั้น?” และทำให้มันเป็นธรรมชาติ อย่างไร? ดี, Bash รักษาสตริงเหมือนเพื่อนตัวแสบที่พวกเขาคือ: วางข้างๆ กันและพวกมันจะกอดกันเข้าด้วยกันเป็นสตริงยาว

ภายใต้ฝา, Bash จัดการสิ่งนี้โดยไม่ต้องใช้ฟังก์ชันพิเศษหรือไวยากรณ์สำหรับการต่อสตริง คำหรือตัวแปรเพียงแค่ไหลรวมกัน อย่างไรก็ตาม, หากตัวแปรของคุณอาจเริ่มต้นด้วยตัวเลขหรือเครื่องหมายขีดล่าง, คุณมักจะห่อมันด้วยวงเล็บปีกกาเพื่อป้องกันความสับสนกับชื่อตัวแปรอื่นๆ

อย่างไรก็ตามมีข้อจำกัด: ช่องว่างมีความสำคัญ หากคุณไม่ระมัดระวัง, คุณอาจจบลงด้วยช่องว่างที่ไม่ตั้งใจหรือผลลัพธ์ที่ติดกันรกๆ

ทางเลือกปัจจุบันคือการใช้ฟังก์ชัน printf, ซึ่งให้ความควบคุมเกี่ยวกับการจัดรูปแบบมากขึ้น:

printf -v full_greeting "%s%s" "$greeting" "$name"
echo $full_greeting  # แสดงผล: Hello, world!

ดูเพิ่มเติม