Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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_Terminal_Xdotool - Fatal编程技术网

Bash xdotool-为什么在运行命令之前先睡眠?

Bash xdotool-为什么在运行命令之前先睡眠?,bash,terminal,xdotool,Bash,Terminal,Xdotool,我正在使用xdool自动运行命令、打开新选项卡等 问题是,在当前窗口上执行此操作时,我必须在执行任何操作之前专门睡眠一段时间或使用xdool keyup Return,否则xdool不会按enter键 kartik@kartikpc:~/junk/xdotool$ cat automate #!/bin/bash # Release the Return key # xdotool keyup Return # Or sleep 1 xdotool type --delay 1 --cle

我正在使用
xdool
自动运行命令、打开新选项卡等

问题是,在当前窗口上执行此操作时,我必须在执行任何操作之前专门睡眠一段时间或使用
xdool keyup Return
,否则
xdool
不会按enter键

kartik@kartikpc:~/junk/xdotool$ cat automate 
#!/bin/bash

# Release the Return key
# xdotool keyup Return
# Or sleep 1

xdotool type --delay 1 --clearmodifiers "clear"
xdotool key --clearmodifiers Return

kartik@kartikpc:~/junk/xdotool$ source automate 
clearkartik@kartik-lappy:~/junk/xdotool$ clear
我从很少的资料中读到的是

%睡眠1;xdotool类型“$(printf“hello\nworld\n”)”(睡眠用于 允许我在键入前释放实际的“return”键)

我知道,当我通过按键盘上的“回车”键专门调用脚本时,会按下“回车”键。但为什么不自动发布呢


即使
xdool
正在使用
xdool type
键入内容,也不应该在那时释放“return”键,或者每个字母都应该一行接一行,而不是出现在同一行上,问题更多地与键盘本身的状态有关,而不是任何特殊的操作系统概念。If键仅在从“向上”状态转换为“向下”状态时被称为“按下”


当应用程序尝试发送按键时,它将发送一个keydown,后跟一个keydup。如果钥匙已经处于“向下”状态,发送一个“向下”键不会注册为按键,因为钥匙的状态没有从“向上”转换为“向下”,它只是停留在“向下”状态。(在已经处于“down”状态时发送keydown相当于简单地按住键,而不是再次按下它。)

对于工具的开发人员来说,这可能是一个更好的问题,而不是StackOverflow。我们所能做的就是推测。我在这里问这个问题是因为有很多关于
xdool
的问题。其次,我认为没有立即释放“返回”键与终端或其他操作系统概念有多大关系?因此,它从“向下”状态过渡到“向上”状态需要很长时间,因为我必须专门等待它或“睡眠”?不完全是这样。睡眠是为了确保您(用户)在
xdool
尝试发送按键之前有足够的时间释放enter键。理论上,按键每秒可以按几十次,但用户释放按键才是限制因素。使用
xdool键控返回将比简单的睡眠更快、更可靠。