20

同じ BASH スクリプトが Fedora/CentOS で動作しています。

しかし、私は1つをテストしています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

ファローアップ:

これは今動作する私のスクリプトです:

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

or

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

5 に答える 5

28

Android では、シェルはほとんどの Unix 系システムとは異なります/system/bin/sh/bin/shそのため、変更#!/bin/bash#!/bin/shても機能しません。使用する必要があります#!/system/bin/sh

Android は GNU/Linux ディストリビューションではないため、GNU/Linux で実行されるすべてのスクリプトが Android でも動作するとは期待できません。

于 2011-11-11T14:36:24.997 に答える
11

スクリプトを使用してインタプリタを呼び出すときに機能する可能性がありますか?

$ bash ./test.sh

私はそれが指定されているのに#!/bin/bashエラーが投稿されたのを見ましたsh -それは間違っているかもしれません。

UPD

$ sh ./test.sh
于 2011-11-11T13:30:07.707 に答える
5

ほとんどの Android デバイスには、bash インタープリターがインストールされていません。Linux と Android でスクリプトを実行する必要がある場合は、BusyBoxを使用してみてください。ifconfigそれでも、ユーティリティが BusyBox に含まれているかどうかはわかりません。

Android SDK を使用してアプリを作成し、達成しようとしていることを実行することを強くお勧めします。

于 2011-11-11T14:25:06.963 に答える
2

すでに述べたように、Android OS(4.0まで)にはBASHインタープリター(シェルのみ)は含まれていません。BusyBoxは優れたツールですが、一般的なUNIXユーティリティのサイズに応じた機能を取り除いたバージョンを組み合わせた単一の実行可能ファイルであると思いますが、実際にはBASHインタープリターは含まれていません。

BASHインタープリターのAndroidコンパイル済みバージョンについては、次のフォーラムスレッドを参照してください:http: //forum.xda-developers.com/showthread.php?t = 537827

于 2012-01-03T19:32:45.740 に答える