【问题标题】:How Can I simulate Return KeyPress within BashScript for Expo Build Process如何在 Expo 构建过程的 Bash 脚本中模拟 Return Key Press
【发布时间】: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


【解决方案1】:

查看手册page,查找对“导航器”的引用。

这给出了一个示例,说明如何使 xdotool 找到与您关联的窗口npx 博览会进程,以便它可以将信号发送给它。

【讨论】:

    【解决方案2】:

    为了回答我自己的问题,我实际上不需要模拟返回键来自动执行 Expo CLI 中的命令之一

    通过使用以下工具,我能够找到解决方案:FIG (https://fig.io/)

    当我输入npx expo run:ios -d 时,在像往常一样按回车之前,fig 已自动填充设备 ID 以跟踪-d。这使得整个命令看起来像这样npx expo run:ios -d 00008030-000537H31B5573F(数字和字母已更改)。 仅此一点,我就可以通过在被询问之前提供设备 ID 来响应 Expo 的交互式提示之一。

    希望这可以在将来对其他人有所帮助。干杯。

    【讨论】:

      猜你喜欢
      • 2020-08-11
      • 2015-05-11
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2017-04-12
      • 2021-03-10
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多