Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 为什么xdotool类型为两次?我怎样才能避免呢?_Bash_Keyboard Shortcuts_Copy Paste_Xdotool - Fatal编程技术网

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

Bash 为什么xdotool类型为两次?我怎样才能避免呢?,bash,keyboard-shortcuts,copy-paste,xdotool,Bash,Keyboard Shortcuts,Copy Paste,Xdotool,[Wed Aug 05 20:49:43deppfx@localhost:~]$xdotool类型密码 密码[Wed Aug 05 20:50:51deppfx@localhost:~]$密码 我怎样才能避免这种情况?有人能解释一下这种行为吗?它实际上并没有输入两次;它在控制终端的同时进行键入,然后shell提示符返回并重新格式化在终端键入的内容。尝试在不同的xterm中键入(例如,xdotool selectwindow type password),您应该只看到一份副本。实际上不会键入两次;

[Wed Aug 05 20:49:43deppfx@localhost:~]$xdotool类型密码


密码[Wed Aug 05 20:50:51deppfx@localhost:~]$密码


我怎样才能避免这种情况?有人能解释一下这种行为吗?

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

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

@Wnoise是正确的

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

stty -echo && xdotool type password && stty echo
@Wnoise是对的

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

stty -echo && xdotool type password && stty echo
解释原因:

这不是第二次。解释为什么会出现这种情况需要一些细节 关于外壳和端子的行为

你可以通过正常的键盘输入来观察这一点 这:

%睡眠5

当sleep运行时,在同一终端中键入“hello world”。 当sleep退出并返回shell提示符时,您将看到 大概是这样的:

夜幕降临(~)%睡眠5

hello world黄昏(~)%hello world

正在发生的事情是在睡眠运行时输入终端(或 (xdool),sleep不从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
这不会删除前一行,但至少可以防止您的提示增长被重复的命令占用太长时间。

解释了原因:

这不是第二次。解释为什么会出现这种情况需要一些细节 关于外壳和端子的行为

你可以通过正常的键盘输入来观察这一点 这:

%睡眠5

当sleep运行时,在同一终端中键入“hello world”。 当sleep退出并返回shell提示符时,您将看到 大概是这样的:

夜幕降临(~)%睡眠5

hello world黄昏(~)%hello world

正在发生的事情是在睡眠运行时输入终端(或 (xdool),sleep不从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

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

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