我有问题,希望有人可以帮助我。我目前正在尝试为Termux或Termux:Task编写脚本。我的脚本当前如下所示:
!/ data / data / com.termux / files / usr / bin / bash cd /./sdcard/www/public/ wp帖子列表睡眠5
每次加载脚本时,都会收到以下错误消息:
/data/data/com.termux/files/usr/bin/wp:/ usr / bin / env:错误的解释器:没有这样的文件或目录。
很久以来,我一直在寻找解决问题的方法,不幸的是没有成功。
我正在使用Termux的扩展名“ WordPress CLI”。当我启动termux并分别输入命令时,一切正常。但是,一旦我将命令写入sh脚本并启动,它就不再起作用。 :(
有人可以帮助我吗?
非常感谢
答案 0 :(得分:0)
这是一个简单的错误,您可以通过替换!/data/data/com.termux/files/usr/bin/bash
来解决。使用#!/data/data/com.termux/files/usr/bin/bash
请告诉您是否再次出错
答案 1 :(得分:0)
在shebang行中尝试使用#!/usr/bin/env bash
。
Termux-exec允许您使用shebang来执行传统Unix文件结构的脚本。因此,像#!/ bin / sh和#!/ usr / bin / env python这样的shebangs应该能够在没有termux-fix-shebang的情况下运行。
答案 2 :(得分:0)
根据doc:
<块引用>为什么我总是收到“/bin/sh bad interpreter”错误?
由于访问脚本解释器不存在而引发此错误 位置。
Termux 没有像 /bin、/sbin、/usr/bin 这样的公共目录在 他们的标准位置。某些设备有一个例外,其中 /bin 是到 /system/bin 的符号链接,但这并不构成 区别。
应仅在此目录中访问解释器:
/data/data/com.termux/files/usr/bin
有三种方法可以解决这个问题:
termux-fix-shebang my_script.py
的第二种方法对我有用,它将shebang(my_script.py
的第一行)从#!/usr/bin/env python
修改为#!/data/data/com.termux/files/usr/bin/env python
。由于 /usr/bin/
在 Android 中不存在,这就是它抛出错误 /usr/bin/env: bad interpreter: No such file or directory
的原因。另一个解决方案使用 python my_script.py
运行,既不是 my_script.py
也不是 ./my_script.py
。
在我的测试中,the first method 的 termux-exec
仅在我在主脚本中添加正确的shebang(不需要子脚本的子或子脚本)并运行命令 export LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so
时才有效。
对于这个问题的问题,即使脚本/usr/bin/env
的shebang看起来没问题,错误显示/data/data/com.termux/files/usr/bin/wp
在中间,#!/data/data/com.termux/files/usr/bin/bash
,这意味着wp
命令(位于/data/data/com.termux/files/usr/bin/wp
)在脚本中使用包含shebang #!/usr/bin/env wp
,也应该将其修改为#!/data/data/com.termux/files/usr/bin/env wp
。第一种方法的 termux-exec
也应该解决这个特殊情况(主脚本中已经有正确的 shebang)。