小编rhc*_*per的帖子

将 shell 脚本与 jstest 一起使用,如何让游戏手柄与我的脚本进行交互?

我在这方面取得了部分成功,但我被卡住了。这是我的脚本:

我想提示用户,等待来自 USB 游戏手柄的输入,然后根据按下的按钮执行命令。

if lsusb | grep -q '0583:2060'
then
  echo "press the A button"
  #
  if jstest --event /dev/input/js0 | grep -q "number 0, value 1"
  then
    echo "you pressed the A button"
  else
    echo "you pressed the NOT A button"
  fi
fi
Run Code Online (Sandbox Code Playgroud)

它检查游戏手柄是否连接正常。当我按下 A 按钮时,它还会检查 jstest 并回显“您按下了 A 按钮”。

但是,在这种情况下,我无法让它执行“其他”部分,因为 grep 仅从 jstest(A 按钮)过滤“按钮 0,值 1”,这意味着如果我不按下 A 按钮,jstest 正在管道没什么可 grep 的,它总是等待 A 按钮。

我在想也许有一些方法可以做到:

grep -q "number ., value 1" 
Run Code Online (Sandbox Code Playgroud)

这将返回任何被按下的按钮,然后根据 grep 显示的内容执行不同的命令。我以为我可以为此使用 case 语句,但是我无法让 jstest 使用 …

shell-script

5
推荐指数
1
解决办法
1689
查看次数

标签 统计

shell-script ×1