我在bash脚本中使用here-documents来自动执行安装和设置,而该操作需要多次输入密码。我输入一次密码,脚本将其传递给各种命令。在大多数情况下,此处文档方法可以很好地解决这一问题。但是,在一种情况下,我得到此错误:
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
将不胜感激。我将更新我的问题以避免进一步的混乱。