ใครช่วยอธิบายสิ่งที่เชลล์ทำในสองตัวอย่าง A) และ B) ด้านล่างได้ไหม เห็นได้ชัดว่ามันทำงานแตกต่างกัน แต่ฉันไม่สามารถหาได้ว่าทำไมเอาต์พุตจึงแตกต่างกัน
ตัวอย่าง:
เรามามีสคริปต์ในไดเรกทอรีปัจจุบันของเราชื่อbla.sh
ด้วยคำสั่งเดียว:
echo ${0##/*} hello
A)
เริ่มเมื่อ: ./bla.sh
ให้:./bla.sh hello
B)
เริ่มต้นเป็น: . bla.sh
ให้:-bash hello
เนื่องจากฉันใช้สิ่งนี้ในสคริปต์เอาต์พุตที่สอง (เพราะ "-" ที่ด้านหน้าของ -bash) จะฆ่าคำสั่ง แน่นอนง่าย ๆ--
ก่อนที่จะ${...}
ช่วยเหลือ แต่ฉันชอบที่จะเข้าใจสิ่งที่ทำให้เกิดผลลัพธ์ในครั้งแรก
ฉันรักทุบตี และ vi [m] แต่ฉันเชือนแช ...