. 백그라운드에서 실행되는 명령에 대한 명령줄 인수로

. 백그라운드에서 실행되는 명령에 대한 명령줄 인수로

난 달린다 grep some-string -r . &. bkg에서 실행되면 cd다른 디렉토리로 이동합니다. grep하드 링크가 다르게 해석되는 것 같습니다 .. 현재 디렉토리를 변경하기 전후에 어떤 일이 발생합니까? 원래 디렉터리와 새 디렉터리가 불완전하게 검사됩니까?

.명령인 명령줄 인수가 명령 실행 시작 시에만 역참조되는지, 아니면 프로그램이 실행되는 동안 사용될 때마다 역참조되는지 궁금합니다 .

답변1

각 프로세스에는 프로세스 외부에서 변경할 수 없는 자체 "현재 작업 디렉터리"가 있습니다.

그래서 당신이 할 때

grep some-string -r . &

쉘이 grep백그라운드에서 시작되고 grep현재 작업 디렉토리가 쉘과 동일한 값으로 초기화됩니다.그 순간. 여기에 grep정의된 것은 .다른 디렉토리가 아닌 자체 현재 디렉토리입니다. 쉘은 인수 해석에 참여하지 않습니다.

이후에 쉘 디렉토리를 변경해도 cd영향을 미치지 않습니다 grep.

관련 정보