ฉันวิ่งก น้อย
คำสั่งที่ฉันคาดว่าจะล้มเหลวเพราะชื่อไฟล์จะว่างเปล่า แต่ที่ฉันประหลาดใจคือมันพิมพ์ตัวแปรสภาพแวดล้อมบางอย่าง:
$less -XE "$(ซึ่งไม่มีสคริปต์)"
ส่งออก LESSOPEN="| /usr/bin/lesspipe %s";
ส่งออก LESSCLOSE="/usr/bin/lesspipe %s %s";
(-XE
โดยพื้นฐานแล้วทำให้มันมีพฤติกรรมเหมือน แมว
.)
แมว
ในทางกลับกัน ล้มเหลว:
$ cat "$ (ซึ่งไม่มีสคริปต์)"
cat: '': ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
ทำไม น้อย
ทำเช่นนี้? ฉันได้แต่จินตนาการว่ามันเป็นปัญหา เพราะหากมีข้อบกพร่องบางอย่างในโค้ดของคุณที่ทำให้ชื่อไฟล์ว่างเปล่า คุณจะได้รับเอาต์พุตปลอม
ขณะที่เราอยู่ที่นี่ เหตุใดจึงพิมพ์ตัวแปรสภาพแวดล้อมเหล่านั้น พวกเขามาจากสภาพแวดล้อมของฉันหรือไม่ พวกเขาเหมือนกัน:
$ ประกาศ -p น้อยลงเปิด น้อยลงปิด
ประกาศ -x LESSOPEN="| /usr/bin/lesspipe %s"
ประกาศ -x LESSCLOSE="/usr/bin/lesspipe %s %s"
ฉันตรวจสอบแล้ว ผู้ชายน้อยลง
แต่ ชื่อไฟล์ พารามิเตอร์ดูเหมือนจะไม่ได้รับการบันทึกไว้อย่างชัดเจน การกล่าวถึงอื่น ๆ ดูเหมือนจะไม่เกี่ยวข้องกับพฤติกรรมนี้ ฉันยังตรวจสอบ น้อย
คำถามที่พบบ่อย.