'(เครื่องหมายคำพูดเดี่ยว) ทำอะไรในเทอร์มินัล


8

หากฉันพิมพ์ '(เครื่องหมายคำพูดเดี่ยวถัดจาก<enter>ปุ่ม) ในเทอร์มินัลจากนั้นกด Enter มันจะหยดลงใน>พรอมต์ นี่คืออะไรสิ่งที่มันใช้สำหรับอะไรและฉันสามารถป้อนคำสั่งประเภทใดได้ที่นี่

ฉันสามารถ<Ctrl-C>ออกไปได้ แต่นั่นคือทั้งหมดที่ฉันได้รับ

คำตอบ:


6

เทอร์มินัลไม่เพียง แต่ยอมรับรหัสหนึ่งบรรทัด จริงๆแล้วคุณสามารถเขียนโค้ด (เนื่องจาก bash scripting เป็นภาษาการเขียนโปรแกรม) ในหลายบรรทัด

ตัวอย่างเช่นถ้าคุณเขียน:

while true; do <enter>

มันจะแสดงสิ่งเดียวกันกับ>ที่แสดงให้คุณเห็นในกรณีของคุณเช่นกัน มันช่วยให้คุณป้อนคำสั่งเพิ่มเติม ตอนนี้ถ้าคุณพิมพ์:

echo "Cake is a lie" <enter>
sleep 1              <enter>
done                 <enter>

มันจะเริ่มต้นรันโค้ดของคุณ (ซึ่งในโอกาสนี้มันเป็นเพียงลูปในขณะที่จะส่งออกสตริงทุก 1 วินาที) สิ่งนี้ช่วยให้คุณสามารถสร้างโปรแกรมขนาดเล็กโดยไม่ต้องเขียนโปรแกรมในโค้ดหนึ่งบรรทัดเช่นนี้

while true; do echo "Cake is a lie"; sleep 1; done

ซึ่งในกรณีนี้มันไม่ใช่ปัญหาดังกล่าว แต่ในโอกาสอื่น (อาจมีการเขียนโค้ดเพิ่มเติม)

ดังนั้นโดยทั่วไปจะใช้สำหรับการเขียนโค้ดหลายบรรทัด เนื่องในโอกาสของคุณเปลือกตระหนักดีว่าคุณไม่ได้มีจำนวนแม้แต่'ภายในรหัสของคุณและไม่สามารถทำงานในกรณีใด ๆ (เช่นเดียวกับ") ดังนั้นให้คุณเขียนโค้ดเพิ่มเติมเพื่อเติมสิ่งที่คุณทิ้งไว้ให้สมบูรณ์

ตัวอย่างเช่นหากคุณให้คำสั่งเป็น:

echo "Cake is a <enter>

จากนั้นมันจะช่วยให้คุณดำเนินการต่อ และแน่นอนคุณสามารถ:

lie"            <enter>

ปกติแล้วมันจะออก:

Cake is a
lie

ฉันเห็นดังนั้นแทนที่จะให้ข้อความแสดงข้อผิดพลาดแก่ฉันมันทำให้ฉันมีโอกาสได้รับคำสั่งให้สำเร็จ มีชื่อสำหรับ "โหมดนี้" หรือไม่?
Insperatus

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