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键控返回将比简单的睡眠更快、更可靠。