ฉันใช้เอกสารที่นี่ในสคริปต์ทุบตีเพื่อทำการติดตั้งและตั้งค่าอัตโนมัติซึ่งต้องใช้รหัสผ่านหลายครั้ง ฉันป้อนรหัสผ่านหนึ่งครั้งและสคริปต์จะส่งไปยังคำสั่งต่างๆ ในกรณีส่วนใหญ่วิธีการที่นี่เอกสารจัดการปรับนี้ อย่างไรก็ตามในกรณีหนึ่งฉันได้รับข้อผิดพลาดนี้:
Enter VNC password: stty: standard input: Inappropriate ioctl for device
Verify password:
stty: standard input: Inappropriate ioctl for device
โปรดสังเกตว่าข้อความแสดงข้อผิดพลาดนี้มาจากx11vnc -storepassword
(ไม่ใช่จากsudo
)
ปัญหาของฉันเกี่ยวข้องกับx11vnc -storepasswd
และนี่คือรหัสของฉัน:
sudo x11vnc -storepasswd ~/.vnc/passwd << ENDDOC
password
password
y
ENDDOC
เห็นได้ชัดว่า (จากข้อผิดพลาด) ไม่ทำงาน ฉันขอขอบคุณตัวอย่างการทำงานของวิธีการใช้งานsudo x11vnc -storepasswd ~/.vnc/passwd
ในสคริปต์
ในกรณีที่ช่วยได้พรอมต์จะมีลักษณะดังนี้:
ป้อนรหัสผ่าน VNC:
ยืนยันรหัสผ่าน:
เขียนรหัสผ่านไปที่ /home/user/.vnc/passwd? [Y] / NN
จะใช้expect
เป็นทางออกที่ดีกว่า ถ้าเป็นเช่นนั้นฉันจะใช้มันอย่างไรในกรณีนี้? (ฉันไม่เคยใช้มาexpect
ก่อน แต่ฉันได้ดูตัวอย่างมากมายตั้งแต่โพสต์คำถามนี้และฉันไม่สามารถexpect
ทำงานด้วยตัวเองได้)
sudo
x11vnc -storepassword
ฉันได้ลองexpect
ใช้วิธีการต่าง ๆและฉันไม่สามารถทำให้ถูกต้องได้ ตัวอย่างที่ใช้expect
ป้อนรหัสผ่านx11vnc -storepassword
จะได้รับการชื่นชมอย่างมาก ฉันจะอัปเดตคำถามของฉันเพื่อหลีกเลี่ยงความสับสนเพิ่มเติม