【发布时间】:2022-11-08 06:43:15
【问题描述】:
我当前的脚本看起来像这样:
#!/bin/sh
cd Desktop/work-directory/project-directory/
code .
npx expo run:ios -d
sleep 10
xdotool key Return
- 我导航到每天早上打开的工作目录。
- 我打开我的文本编辑器。
- 我运行
npx expo run:ios -d命令在本地设备上运行我的构建。 - 如果您有兴趣,可以在这里阅读更多信息:(https://docs.expo.dev/workflow/run-on-device/)
- 在运行
npx expo run:ios -d后,我被要求“选择一个模拟器”,在此我选择要为其创建构建的模拟设备。 - 我总是在本地设备上构建它。考虑到这是第一个可用的选项,我只希望上面的脚本在提示继续构建应用程序时按 Return/Enter,而无需我在终端旁。
从局外人的角度来看,是否有人能够阐明我可能做错了什么?我的语法错了吗?有人知道我是否必须使用与 xdotool 不同的工具来与 Expo CLI 提示进行交互?任何和所有的帮助将不胜感激。
- 我已经尝试过使用
yes,但没有成功。我特别需要输入或返回。 - 我已将睡眠时间调整为超过 30 秒,看看是否可以。
- 我已经阅读了有关
Expect的信息,但不确定这是否是我想要走的路线/我什至需要的工具。
非常感谢你们,我期待着在 Bash 社区中收到你们的来信:)
【问题讨论】:
-
没有使用
xdotool的经验,我想知道这个程序应该如何知道哪个窗口它应该模拟返回键,即不应该有windowactivate?要调查的另一点是 Expo CLI 如何读取其答案。如果它来自标准输入,一个简单的重定向应该可以完成这项工作。如果是 X Window 应用程序,我认为xdotool确实是要走的路。 -
你的观点很棒。在 Expo CLI 提示符下按
Ctrl+c后,我看到它确实运行了 keyPress 命令,然后我意识到它永远不会在我想要的窗口中运行。我不再相信 xdotool 将在终端窗口中用于我的目的。我见过的所有例子都是针对网络浏览器的。我现在已经阅读了一些标准输入标准输出和标准错误,并将研究我可能需要做些什么来重定向它,就像你说的那样。如果你有好的阅读资源。我很乐意让他们看看。感谢您的帮助和考虑 -
基本上,与xdotool您必须确定必须将按键发送到的窗口(手动,您只需将焦点放在该窗口上),并且当时在该窗口中运行的任何进程都会接收键输入。使用标准输入,您无需发送钥匙, 但人物,并且目标是一个进程,而不是一个窗口。当然,进程必须愿意从标准输入中读取。
标签: bash