我的相同 BASH 脚本在 Fedora/CentOS 中运行。
但我正在测试一个 Android eee pad 变压器
。
我有终端访问权限,我写了一个小测试脚本。但它不起作用,我该如何解决它?我做错了什么?
/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/