android - 如何在我的 Android 中运行 BASH 脚本?

标签 android linux bash fedora bash4

我的相同 BASH 脚本在 Fedora/CentOS 中运行。

但我正在测试一个 Android eee pad 变压器enter image description here

我有终端访问权限,我写了一个小测试脚本。但它不起作用,我该如何解决它?我做错了什么?

/data/data/berserker.android.apps.sshdroid/home $ cat test.sh 
#!/bin/bash
var=`ifconfig -a`;
echo $var;

/data/data/berserker.android.apps.sshdroid/home $ chmod +x test.sh 
/data/data/berserker.android.apps.sshdroid/home $ ./test.sh 
sh: ./test.sh: not found
/data/data/berserker.android.apps.sshdroid/home $ uname -a
Linux localhost 2.6.36.3-00004-g069b8b5 #1 SMP PREEMPT Wed May 11 22:14:22 CST 2011 armv7l GNU/Linux

/data/data/berserker.android.apps.sshdroid/home $ bash ./test.sh 
sh: bash: Permission denied

/data/data/berserker.android.apps.sshdroid/home $ ls -l /bin/bash
ls: /bin/bash: No such file or directory

/data/data/berserker.android.apps.sshdroid/home $ find / -name "bash"
find: /config: Permission denied
lots more.......
find: /proc/595/task/598/fd: Permission denied
......
find: /data: Permission denied
find: /root: Permission denied

跟进:

这是我现在可以使用的脚本:

#!/bin/sh
echo "hello wassup, run me simply as './test.sh'";

or

#!/bin/bash
echo "hello wassup, run me using 'sh ./test.sh'";

最佳答案

在 Android 中,shell 位于 /system/bin/sh 而不是 /bin/sh ,就像在大多数类 Unix 系统上一样。因此,即使您将 #!/bin/bash 更改为 #!/bin/sh 它仍然无法正常工作。你必须使用 #!/system/bin/sh

Android 不是 GNU/Linux 发行版,因此您不能指望在 GNU/Linux 上运行的所有脚本也可以在 Android 上运行。

关于android - 如何在我的 Android 中运行 BASH 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8094562/

相关文章:

android - Android 中的 XMPP (smack) 给出 "java.lang.IllegalStateException: Not connected to server."

c# - 从 ListView 项按钮中删除 ListView 项

android - 使用 proguard 在 Android 上使 ORMLite 崩溃

java - 平面文件数据库好用吗?

c - 如何在linux中获得这种点击运行效果?

android TagHandler 和 CSS

linux - 如何遍历 .txt 并将每行的值用作变量 Linux Shell

bash - 在 Maemo 中运行 bash shell

linux - 解析文件名的一部分以用作 bash 中的变量

python - 将 json 文件与 CSV 结合 - 类似于 vlookup