私と同じ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'";
スクリプトを使用してインタープリターを呼び出すときに機能する可能性がありますか?
$ bash ./test.sh
#!/bin/bash
が指定されているにもかかわらず、sh
によってエラーが投稿されたことを確認しました。間違っている可能性があります。
UPD
$ sh ./test.sh
in Android=シェルは_/system/bin/sh
_ではなく、ほとんどのUnixライクシステムのような_/bin/sh
_にあります。したがって、_#!/bin/bash
_を_#!/bin/sh
_それでも動作しません。_#!/system/bin/sh
_を使用する必要があります。
AndroidはGNU/Linuxディストリビューションではないため、GNU/Linuxで実行されるすべてのスクリプトがAndroidでも動作することを期待することはできません。
ほとんどのAndroidデバイスにはbashインタープリターがインストールされていません。LinuxとAndroidでスクリプトを実行する必要がある場合は、 BusyBox を使用してみてください。デバイスをルート化する(そして潜在的に保証を無効にする)にもかかわらず、ifconfig
ユーティリティがBusyBoxに含まれているかどうかはわかりません。
Android SDKを使用して、あなたが達成しようとしていることをすべて行うアプリを作成することを強くお勧めします。
述べたように、Android OS(4.0まで)にはBASHインタープリター(シェルのみ)は含まれません。BusyBoxは優れたツールですが、一般的なUNIXユーティリティの機能を縮小したバージョンのバージョンですが、実際にはBASHインタープリターは含まれていません。
Android BASHインタープリターのコンパイル済みバージョンについては、このフォーラムスレッドを参照してください: http://forum.xda-developers.com/showthread.php?t=537827 =
Busybox をインストールできます。これにより、awk、fileなどの多くのユーティリティが提供されます... Terminal Emulator 。
#!/system/bin/sh
を最初の行としてシェルファイルを作成します(Shebang)/system/xbin
または/system/bin
の下に配置し、ターミナルエミュレーターから実行します情報はこの記事からの抜粋です: シェルスクリプトを実行する方法Android DEVICES