すべてAndroidの組み込みデバイス上で実行シェルスクリプトファイル
私は、Android NDKのシステムコールを経由して.SHファイルを実行したいです。
コマンドをシステムコールで実行することができました。 shコマンドはシステムコールでは動作していません。
私はまた、アンドロイドにビジーボックスをインストールしました。以下のコードを使用しています。test.sh
にすべての許可を設定しました。
コード:
#include <stdlib.h>
#include <stdio.h>
#include <android/log.h>
#include <jni.h>
#define LOG_TAG "Demo"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
void Java_com_ndkdemo_NDKdemoActivity_systemcall(JNIEnv * env, jobject obj) {
int result;
result = system("cp /mnt/sdcard/test /Download");
LOGD("result is cp %d", result);
result = system("sh ./test.sh");
LOGD("result of test.sh is %d", result);
}
出力:
result is cp 0.
result of test.sh is 0.
ここで私はsystem("sh ./test.sh");
に0を取得しますがtest.sh
スクリプトを開始しておりません。
コンソールでは出力"Hi"
を取得できません。私はその作業罰金とコンソール上の指定された出力"Hi"
よりプロンプトに直接コマンドを実行していた場合
test.shは
#!/system/bin/
echo "Hi"
が含まれています。
この問題を理解するために私を助けてください。
おかげ
FYI:あなたの最初の行は実行したいスクリプトを指しているはずですので、 '#!/ system/bin/sh'に設定する必要があります。 – Phil