为什么xdotool类型两次?我怎么能避免呢?

时间:2015-08-06 03:56:45

标签: 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

我该如何避免这种情况?有人可以解释一下这种行为吗?

3 个答案:

答案 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

这不会删除上一行,但至少可以防止您的提示时间过长而被重复的命令占据。