“ ls '” หมายถึงอะไรใน Linux


13

ฉันพิมพ์โดยไม่ได้ตั้งใจls'และได้รับอินเทอร์เฟซแบบโต้ตอบ: > นี่คืออะไร

ฉันลองค้นหาทางอินเทอร์เน็ตไม่พบอะไรเลย

คำตอบ:


34

พฤติกรรมนี้เป็นผู้ไม่เชื่อเรื่องพระเจ้า distro คุณเปิดใบเสนอราคาเชลล์แสดง$PS2ตัวแปรทั่วโลก ( $PS2อยู่>ในเอาต์พุตของคุณ) ในขณะที่การเสนอราคาที่สองหายไป

คุณสามารถเปลี่ยน PS2 ด้วยสิ่งที่คุณต้องการแทน:

Ex: export PS2=">>>"

ค่าของ $ PS2 ถูกพิมพ์ (หลังการขยาย) เป็นพรอมต์ที่สองสำหรับข้อมูลเพิ่มเติมเมื่อ bash กำลังเรียกใช้แบบโต้ตอบ ดูman bashภายใต้พรอมต์


2
คุณมีตาที่ดีที่จะเห็นคำพูดเดียวที่หลงทาง

1
ข้อมูลที่เพิ่มเข้ามา: เมื่อต้องการออกไปเพียงแค่ใส่เครื่องหมายคำพูดเดี่ยวอีกอันหรือกด ctrl-c
ตุลาคม

ไม่ว่าจะอ่าน stdin; คุณสามารถใส่เครื่องหมายคำพูดแบบหลายบรรทัดในสคริปต์หรืออะไรก็ได้เช่นกัน แต่พรอมต์ที่สองจะปรากฏในเซสชันแบบโต้ตอบเมื่อคุณป้อนขึ้นบรรทัดใหม่ภายในสตริงที่ยกมา, ลูปที่ยังไม่เสร็จ ฯลฯ
tripleee

1
ควรใช้ ctrl-d แทน ctrl-c ในฐานะ EOF (สิ้นสุดไฟล์)
Gilles Quenot

ขอบคุณ BTW PS2 หมายถึงอะไร?
Anders Lind

5
-bash-4.1$ ls'
>

หมายความว่าคุณเปิดสตริงที่มีความยาว'และไม่ได้ปิดดังนั้น bash กำลังรอสตริง (อาร์กิวเมนต์) ที่ลงท้ายด้วย'

ใช้งานได้lsโดยไม่ต้อง'สิ้น


0

"PS" ย่อมาจาก (อาจ) "พร้อมท์สตริง" PS1 เป็นสิ่งที่เชลล์จะแสดงเป็นพรอมต์บรรทัดคำสั่งของกระบวนการเชลล์ของคุณ PS2 จะปรากฏขึ้นเมื่อมีการป้อนข้อมูลเพิ่มเติมเพื่อให้คำสั่งเสร็จสมบูรณ์ (สตริงที่ไม่ได้อ้างอิงการอ่านจาก stdin เป็นต้น) man bashจากนั้นค้นหา PS1 หรือ PS2 ( /PS[12]<CR>)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.