18 linux bash android fedora bash4
我的相同BASH脚本在Fedora/CentOS中运行.
但我正在测试一个Android eee pad transformer.

我有终端访问权限,我写了一个小测试脚本.但它无法正常工作,我该如何解决?我究竟做错了什么?
/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
Run Code Online (Sandbox Code Playgroud)
跟进:
这是我的脚本现在有效:
#!/bin/sh
echo "hello wassup, run me simply as './test.sh'";
or
#!/bin/bash
echo "hello wassup, run me using 'sh ./test.sh'";
Run Code Online (Sandbox Code Playgroud)
小智 21
在Android的壳位于/system/bin/sh不/bin/sh喜欢它是在大多数Unix类系统.所以,即使你改变#!/bin/bash到#!/bin/sh它仍然无法正常工作.你必须使用#!/system/bin/sh
Android不是GNU/Linux发行版,所以你不能指望在GNU/Linux上运行的所有脚本也可以在Android上运行.
ASt*_*ten 10
用脚本调用解释器可能会有效吗?
$ bash ./test.sh
Run Code Online (Sandbox Code Playgroud)
我看到,虽然它被指定#!/bin/bash错误被发布sh - 可能是它做错了.
UPD
$ sh ./test.sh
Run Code Online (Sandbox Code Playgroud)