all:
シェルスクリプトa.shがあります:
#/bin/bash -x -n
source /etc/profile
test.cプログラムはsystem()関数を使用して、このスクリプトを呼び出します。
#include <stdio.h>
int main(void)
{
system("/data/nan/a.sh");
return 0;
}
コンソールで直接a.shを呼び出すとわかります。
./a.sh
大丈夫です。
ただし、cプログラムを実行します。
./test
「ソース:見つかりません」と出力します。
原因はsystem()関数が/ bin/shを使用して.shスクリプトを実行している可能性があることを私は知っています。ただし、「#/ bin/bash」を追加してa.shの先頭を追加します。なぜこれが起こるのですか?よろしくお願いします!
よろしく
ナンシャオ