Tôi đang sử dụng tài liệu ở đây trong tập lệnh bash để tự động cài đặt và thiết lập trong đó mật khẩu được yêu cầu nhiều lần. Tôi nhập mật khẩu một lần và tập lệnh chuyển nó đến các lệnh khác nhau. Trong hầu hết các trường hợp, cách tiếp cận tài liệu ở đây xử lý tốt điều này. Tuy nhiên, trong một trường hợp tôi gặp lỗi này:
Enter VNC password: stty: standard input: Inappropriate ioctl for device
Verify password:
stty: standard input: Inappropriate ioctl for device
Xin lưu ý rằng thông báo lỗi này là từ x11vnc -storepassword
(không phải từ sudo
.)
Vấn đề của tôi liên quan đến x11vnc -storepasswd
và đây là mã của tôi:
sudo x11vnc -storepasswd ~/.vnc/passwd << ENDDOC
password
password
y
ENDDOC
Điều đó rõ ràng (từ lỗi) không hoạt động. Tôi sẽ đánh giá cao một ví dụ hoạt động về cách thực hiện sudo x11vnc -storepasswd ~/.vnc/passwd
trong một kịch bản.
Trong trường hợp nó giúp, các lời nhắc trông như thế này:
Nhập mật khẩu VNC:
Xác minh mật khẩu:
Viết mật khẩu vào /home/user/.vnc/passwd? [y] / nn
Sẽ sử dụng expect
là một giải pháp tốt hơn? Nếu vậy, làm thế nào tôi sẽ sử dụng nó trong trường hợp này? (Tôi chưa bao giờ sử dụng expect
trước đây nhưng tôi đã xem xét rất nhiều ví dụ kể từ khi đăng câu hỏi này và tôi không thể expect
tự mình làm việc.)
sudo
nó đến từx11vnc -storepassword
. Tôi đã thử nhiềuexpect
cách tiếp cận khác nhau và dường như tôi không thể hiểu đúng. Một ví dụ sử dụngexpect
để nhập mật khẩux11vnc -storepassword
sẽ được đánh giá rất cao. Tôi sẽ cập nhật câu hỏi của tôi để tránh nhầm lẫn thêm.