当我的脚本需要与 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
在调用脚本时获得完整路径而不传递其完整路径?