Я використовую тут-документи у bash-скрипті для автоматизації встановлення та налаштування, де потрібно багато разів вводити пароль. Я вводжу пароль один раз, і сценарій передає його різним командам. У більшості випадків підхід із документа тут справляється із цим штрафом. Однак в одному випадку я отримую цю помилку:
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? [у] / нн
Чи буде використання expect
кращого рішення? Якщо так, то як би я використовував це в цьому випадку? (Я ніколи expect
раніше не використовував, але я переглянув безліч прикладів з моменту розміщення цього питання, і я не можу expect
самостійно працювати.)
sudo
є, оскільки вона надходитьx11vnc -storepassword
. Я пробував різніexpect
підходи, і не можу, здається, правильно це зробити. Приклад, що використовуєexpect
для введення пароля дляx11vnc -storepassword
, буде дуже вдячний. Я оновлю своє питання, щоб уникнути подальшої плутанини.