[Wed Aug 05 20:49:43 deppfx@localhost:~] $xdotool type password
password[Wed Aug 05 20:50:51 deppfx@localhost:~] $password
我该如何避免这种情况?有人可以解释一下这种行为吗?
答案 0 :(得分:0)
它实际上没有输入两次;它在控制终端时进行打字,然后shell提示返回并重新格式化在终端输入的内容。尝试输入不同的xterm(例如xdotool selectwindow type password
),您应该只看到一个副本。
答案 1 :(得分:0)
@Wnoise是对的!
但如果你坚持要做到这一点:
stty -echo && xdotool type password && stty echo
答案 2 :(得分:0)
This thread "xdotool type duplicates"解释了原因:
那不是两次。解释为什么会出现需要一些细节 关于外壳和端子的行为。
您可以通过运行普通键盘来自己观察 这个:
睡眠百分比5
运行睡眠时,在同一终端上键入“ hello world”。 当sleep退出并返回到shell提示符时,您将看到 像这样的东西:
夜幕降临(〜)%睡眠5
hello worldnightfall(〜)%hello world
发生的事情是您在睡眠运行时在终端机中输入(或 xdotool),则不会从stdin读取睡眠,因此在给定shell时 再次控制它会读取您的击键(在输入缓冲区中),然后 将它们打印在屏幕上,显示您在上方看到的内容。
我当前的解决方法是添加一个额外的echo
,例如:
xdotool type password; echo
哪个输出:
[Wed Aug 05 20:49:43 deppfx@localhost:~]$ xdotool type password; echo
password
[Wed Aug 05 20:49:43 deppfx@localhost:~]$ password
这不会删除上一行,但至少可以防止您的提示时间过长而被重复的命令占据。