3

我有一个问题,希望有人可以帮助我。我目前正在尝试为 Termux 或 Termux:Task 编写脚本。我的脚本目前看起来像这样:

#!/data/data/com.termux/files/usr/bin/bash
cd /./sdcard/www/public/
wp post list sleep 5

每次加载脚本时,我都会收到以下错误消息:

/data/data/com.termux/files/usr/bin/wp: /usr/bin/env: bad interpreter: No such file or directory.

几个小时以来,我一直在寻找解决问题的方法,不幸的是没有成功。

我正在使用一个名为“WordPress CLI”的 Termux 扩展。当我启动 termux 并单独输入命令时,一切正常。但是一旦我将命令写入 sh 脚本并启动它就不再起作用了。:(

谁能帮我?

非常感谢

4

3 回答 3

0

这是一个简单的错误,您可以通过替换来修复它!/data/data/com.termux/files/usr/bin/bash。请#!/data/data/com.termux/files/usr/bin/bash 告诉您是否再次出现错误

于 2019-10-20T18:35:30.600 回答
0

根据文档

为什么我不断收到“/bin/sh bad interpreter”错误?

由于在不存在的位置访问脚本解释器而引发此错误。

Termux 在其标准位置没有像 /bin、/sbin、/usr/bin 这样的公共目录。对于某些设备有一个例外,其中 /bin 是指向 /system/bin 的符号链接,但这并没有什么区别。

应仅在此目录中访问解释器:

/data/data/com.termux/files/usr/bin

有三种方法可以解决此问题:

  • 使用 pkg install termux-exec 安装 termux-exec。它不会影响当前会话,但重启后无需任何设置即可工作。如果您的 Termux 是最新的,则不需要。如果仍然无法正常工作,请尝试下一个解决方法。
  • 使用命令 termux-fix-shebang 修复指定文件的 shebang 行。
  • 使用软件包根目录中的 termux-chroot 来设置一个模仿 Termux 中普通 Linux 文件系统的 chroot 环境。

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

在我的测试termux-exec中,只有当我在主脚本中添加正确的 shebang(不需要子脚本的子或子)并运行 command时,第一种方法export LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so才有效。

对于这个问题的问题,即使脚本的shebang看起来没问题,/usr/bin/env中间也会显示错误,这意味着脚本中使用的命令(位于)包含shebang ,也应该修改它。第一种方法也应该解决这个特定情况(主脚本中已经有正确的 shebang)。/data/data/com.termux/files/usr/bin/wp#!/data/data/com.termux/files/usr/bin/bashwp/data/data/com.termux/files/usr/bin/wp#!/usr/bin/env wp#!/data/data/com.termux/files/usr/bin/env wptermux-exec

于 2021-01-20T17:32:21.940 回答
0

尝试#!/usr/bin/env bash在 shebang 行中。

Termux-exec 允许您使用 shebangs 执行传统 Unix 文件结构的脚本。所以像#!/bin/sh 和#!/usr/bin/env python 这样的shebangs 应该能够在没有termux-fix-shebang 的情况下运行。

来自https://wiki.termux.com/wiki/Termux-exec

于 2019-12-19T06:54:32.953 回答