스크립트가 C 실행 파일과 통신해야 할 때 문제가 있습니다. 스크립트의 전체 경로를 가져올 수 없으므로로드하고 다른 프로세스로 보내야합니다.쉘에서 C 프로그램을 실행할 때 상대 경로를 전체 경로로 확장
argv[0]
가 실행 년대를 보여줍니다 스크립트의 이름은myScript
#!/home/user/git/proyect/test hello this is a script
내가 터미널에서
myScript
를 실행하면 이는 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; }
의 소스 코드 경로 (나는 그것이의 정보이기 때문에있다라고 생각한다.).
argv[1]
이 실행에 전달 된 첫 번째 인수를 보여줍니다 즉
- 내가 인수로
./myScript
를 사용하는 경우 , 즉 내가 인수로/home/user/git/proyect/test/scriptFolder/myScript
를 사용하는 경우 내가 (상대 경로) - 을 볼 것입니다, 그것은 보여줍니다 (I가 필요하지만, 내가 터미널의 전체 경로마다 시간을 쓰고 싶지 않아 무엇을) 절대 경로
그래서 내 질문에, 나는 통과하지 않고 myScript
의 전체 경로를 얻는 방법 그것의 전체 경로 whe 스크립트 호출?
감사합니다. 그것이 내가 찾고 있었던 것이다. realpath() 전체 작업 코드로 내 질문을 편집해야합니까? – Leo
@Leo 꼭 할 필요는 없습니다. –
하지만 나는 미래의 모범으로 응답을 유지하고 싶다. 내 말은, 내가 원한다면 편집 문제는 괜찮습니까? 아니면 주석이나 다른 것으로 추가해야합니까? – Leo