วิธีการเขียนสคริปต์เพื่อ sudo คำสั่งสุดท้าย [ซ้ำ]


3

คำถามนี้มีคำตอบอยู่ที่นี่แล้ว:

โดยปกติสำหรับคำสั่งบางอย่างเช่นapt-get install xxxฉันลืมที่จะเพิ่มsudoก่อนจากนั้นฉันต้องพิมพ์อีกครั้ง resudoสิ่งที่ผมต้องการคือในกรณีดังกล่าวผมเพียงแค่พิมพ์คำสั่งง่ายๆเช่น sudo apt-get install xxxมันจะคำสั่ง sudo ล่าสุดของฉัน เป็นไปได้ในการทุบตี?


คำตอบ:


18

คุณสามารถใช้ bash's !!: มันเป็นทางลัดในการรันคำสั่งล่าสุดอีกครั้ง

sudo !!

อย่างไรก็ตามทุบตีมีทางลัดมากมายสำหรับทุกสิ่งคุณสามารถกดลูกศรขึ้น (เพื่อเรียกคืนบรรทัดที่พิมพ์ล่าสุด) จากนั้นกด^AหรือHomeเพิ่มที่sudoนั่น

นี่คือสูตรชีททุบตีที่มีประโยชน์


ขอบคุณมันใช้งานได้ดี แต่ยังมีอีกคำถามที่ดูเหมือนว่า !! ไม่รู้จักในสคริปต์ทุบตีทำไม? ตัวอย่างเช่นฉันต้องการรับคำสั่งล่าสุด last_command = $ (!!) มันไม่ทำงาน

@Todd: $()evals คำสั่งแทนที่ด้วยผลลัพธ์ของคำสั่ง คุณเพียงแค่ต้องทำlast_command=!!มิฉะนั้นถ้า!!เป็นเช่นecho Hello, จะขยายไปยังlast_command=$(!!) last_command=hello
peoro

@peoro: โปรดทดสอบใน bash ของคุณ last_command = $ (!!) ทำให้เกิดข้อผิดพลาดในการตีความ ดูเหมือนว่า !! ไม่เป็นที่รู้จัก

4
@Todd: การขยายประวัติถูกปิดใช้งาน (โดยทั่วไป) ภายในสคริปต์เนื่องจากไม่เหมาะสม โปรดจำไว้ว่าสคริปต์ทำงานใน subshells ดังนั้นหากคุณสามารถใช้!!ในสคริปต์สคริปต์นั้นจะขยายไปยังบรรทัดก่อนหน้าของสคริปต์นั้นไม่ใช่สิ่งสุดท้ายที่ผู้ใช้ที่เรียกใช้สคริปต์ทำ หากคุณพยายามที่จะจดชวเลขให้sudo !!ดูคำตอบของฉันที่นี่เพื่อหาวิธีสร้างชื่อแทนเชลล์ให้ทำ
Gordon Davisson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.