【发布时间】:2015-08-06 03:56:45
【问题描述】:
[Wed Aug 05 20:49:43 deppfx@localhost:~] $xdotool type password
password[Wed Aug 05 20:50:51 deppfx@localhost:~] $password
我怎样才能避免这种情况?有人可以解释一下这种行为吗?
【问题讨论】:
标签: bash keyboard-shortcuts copy-paste xdotool
[Wed Aug 05 20:49:43 deppfx@localhost:~] $xdotool type password
password[Wed Aug 05 20:50:51 deppfx@localhost:~] $password
我怎样才能避免这种情况?有人可以解释一下这种行为吗?
【问题讨论】:
标签: bash keyboard-shortcuts copy-paste xdotool
实际上并没有输入两次;它在控制终端的同时进行输入,然后 shell 提示符返回并重新格式化在终端输入的内容。尝试输入不同的 xterm(例如 xdotool selectwindow type password),您应该只会看到一个副本。
【讨论】:
selectwindow 选项。
@Wnoise 是对的!
但如果你坚持你可以这样做:
stty -echo && xdotool type password && stty echo
【讨论】:
This thread "xdotool type duplicates"解释原因:
这不是两次。解释为什么会出现这种情况需要一些细节 关于 shell 和终端的行为。
您可以通过运行正常的键盘输入自己观察这一点 这个:
% 睡眠 5
在 sleep 运行时,在同一个终端中输入“hello world”。 当 sleep 退出并返回到您的 shell 提示符时,您将看到 像这样:
夜幕降临(~) % 睡眠 5
hello worldnightfall(~) % hello world
发生的情况是您在 sleep 运行时输入终端(或 xdotool),sleep 不会从标准输入读取,所以当给定 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
这不会删除前一行,但至少可以防止您的提示增长太长时间被重复的命令占用。
【讨论】: