심볼릭 링크를 통해 호출될 때 $0에는 무엇이 포함됩니까?

심볼릭 링크를 통해 호출될 때 $0에는 무엇이 포함됩니까?

$0매개변수는 호출 프로그램의 이름을 보유합니다. my_command홈 디렉토리에 이 명령에 대한 심볼릭 링크를 생성하고 /usr/local/bin/command1를 입력하여 실행하는 경우 ./my_command의 값은 무엇입니까 $0? 누구든지 이유를 설명할 수 있나요? 감사해요!

답변1

$0호출한 프로그램의 이름은 저장되지 않지만, 호출된 프로그램의 이름은 저장됩니다. 호출 프로그램도 마찬가지입니다 ./my_command.$0./my_command

심볼릭 링크라는 사실은 아무런 차이가 없습니다.

답변2

될 내용을 포함한 명령줄(또는 UNIX에서는 명령줄 인수 배열)이 $0다음으로 전달됩니다.exec호출 프로그램에 의해 호출됩니다.

심볼릭 링크 확인, Shebang 처리 등은 호출 처리의 일부로 시스템에서 수행됩니다 exec.

따라서 호출 프로그램(귀하의 경우 쉘)이 argv( /.my_command귀하의 경우)의 첫 번째 항목으로 지정하는 것은 무엇이든 가 됩니다 $0.

관련 정보