【问题标题】:Why does xdotool type twice ? How can I avoid it?为什么 xdotool 输入两次?我怎样才能避免它?
【发布时间】: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


    【解决方案1】:

    实际上并没有输入两次;它在控制终端的同时进行输入,然后 shell 提示符返回并重新格式化在终端输入的内容。尝试输入不同的 xterm(例如 xdotool selectwindow type password),您应该只会看到一个副本。

    【讨论】:

    • 感谢您的解释。我怎样才能避免这种情况?我正在尝试使用 xdotool 自动粘贴剪贴板,因此无法使用 selectwindow 选项。
    • @deppfx:没有什么可以避免的。真的只需要输入一次。
    【解决方案2】:

    @Wnoise 是对的!

    但如果你坚持你可以这样做:

    stty -echo && xdotool type password && stty echo
    

    【讨论】:

      【解决方案3】:

      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
      

      这不会删除前一行,但至少可以防止您的提示增长太长时间被重复的命令占用。

      【讨论】:

        猜你喜欢
        • 2013-07-24
        • 2015-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-13
        • 2013-10-08
        • 1970-01-01
        • 2022-12-08
        相关资源
        最近更新 更多