スクリプトが C 実行可能ファイルと通信する必要があるときに問題が発生します。ロードして別のプロセスに送信する必要があるスクリプトのフル パスを取得できません。
スクリプトの名前はmyScript
#!/home/user/git/proyect/test
hello this
is a
script
これはC実行可能ファイルのソースコードです
#include <stdio.h>
int main (int argc, char *argv[]){
int count;
printf ("Este programa fue llamado con: \"%s\".\n",argv[0]);
if (argc > 1){
for (count=1; count<argc; count++){
printf("argv[%d] = %s\n", count, argv[count]);
}
}
else{
printf("The command had no other arguments.\n");
}
return 0;
}
myScript
ターミナルから実行すると、
argv[0]
実行可能ファイルのパスを示しています(これは の情報だからだと思います#!
)。argv[1]
実行可能ファイルに渡される最初の引数を示します。- 引数として使用する
./myScript
と、それが表示されます(相対パス) - 引数として使用する
/home/user/git/proyect/test/scriptFolder/myScript
と、絶対パスが表示されます(これが必要ですが、毎回ターミナルにフルパスを書きたくありません)
- 引数として使用する
myScript
だから私の質問は、スクリプトを呼び出すときにフルパスを渡さずにフルパスを取得するにはどうすればよいですか?