在 Android 上无需输入 sh 即可运行脚本

在 Android 上无需输入 sh 即可运行脚本

我想运行位于 system/bin 且权限为 755 的脚本。

有了sh myscript就没有问题,但是即使输出是myscipt./myscript不起作用。pwd/system/bin

在 ubuntu 上我只需要输入/usr/bin并设置权限后,就可以轻松运行它。我想知道为什么每次输入它时都必须输入 sh。

例如我将 aria2 二进制文件推送到 /system/bin (755),然后我可以轻松通过键入来运行aria2c。我现在知道这不是脚本,但它们与我尝试过的东西是一样的。

更新

我有类似的 hashbang#!/bin/bash并且哪个 sh 输出是/system/bin/sh

答案1

回答:Android 具有不同的文件系统布局,并且 bash 位于 (来自 linux PoV 非标准位置) /system/bin。这就是为什么脚本可以在 linux (Ubuntu) 上运行,而不能在 android 上运行的原因。

为了使非本地可执行文件(例如 bash、python 等)正常工作,“hashbang”(#!)必须更新为包含正确的解释器路径(#!/system/bin/bash)。

/usr/bin/env如果在 Android 上有,使用#!/usr/bin/env bash将使脚本可移植。

相关内容