你的脚本会./vendor/bin/ir.sh[12]: syntax error: unexpected '< '
时间: 2024-01-30 11:01:42 浏览: 32
很抱歉,这是因为在 Android 中的 sh 解释器不支持使用 <() 语法。可以使用管道符号将 getevent 命令的输出传递给 while 循环,避免使用 <() 语法。修改后的代码如下:
```
#!/system/bin/sh
# 指定需要监听的键值
keyvalue="00a5"
# 监听 /dev/input/event0 设备文件
getevent -t /dev/input/event0 | while read -r event; do
# 筛选出需要的事件
if echo "$event" | grep -qE "$keyvalue.*pressed"; then
echo "Button KEY_PREVIOUSSONG is pressed."
fi
done
```
在代码中,我们使用 getevent 命令获取事件,并使用管道符号将其输出传递给 while 循环。如果检测到 KEY_PREVIOUSSONG 被按下,则输出相应信息。注意,由于使用了 -r 选项,read 命令会将反斜线字符解释为普通字符。
相关问题
adb shell ./data/vendor/startup.sh ./data/vendor/startup.sh[7]: ./data/vendor/uppertester: not executable: 64-bit ELF file
看起来你尝试在设备上运行 `startup.sh` 脚本,但是在第7行调用的 `./data/vendor/uppertester` 命令不可执行。错误提示中提到该文件是一个 64 位的 ELF 文件,说明该文件是一个二进制文件而不是脚本,因此无法通过 `./data/vendor/uppertester` 命令来执行它。
你可以尝试使用 `file ./data/vendor/uppertester` 命令来查看该文件的类型。如果该文件确实是一个二进制文件,你需要使用正确的方式来执行它。例如,你可以使用 `./data/vendor/uppertester` 命令来执行它,但需要确保该文件有执行权限。
另外,如果 `startup.sh` 脚本依赖于其他文件或者环境变量,你也需要确认这些依赖项是否正确设置。
msmnile_gvmq:/data/vendor # ./startup.sh ./startup.sh[7]: ./data/vendor/uppertester: inaccessible or not found
看起来你尝试在 `/data/vendor` 目录下运行 `startup.sh` 脚本, 但是脚本在第7行调用了 `./data/vendor/uppertester` 这个命令,但是系统无法找到该命令或者没有访问权限。你需要确认该命令是否存在并检查你对该命令的执行权限。你可以尝试使用 `ls -l ./data/vendor/uppertester` 命令查看文件权限,并使用 `chmod +x ./data/vendor/uppertester` 命令添加执行权限。如果该文件确实不存在,你需要检查该脚本是否依赖于其他文件或者环境变量。