명령을 인수로 사용하여 호출할 때.

명령을 인수로 사용하여 호출할 때.

exec대화형 셸에서 실행하면 어떤 작업이 수행되나요? 내 말은 exec매개변수 없이 매우 간단하다는 뜻입니다.

스크립트에서는 어떻습니까?

만약 그것이 뭔가를 한다면, 그것은 무엇을 합니까?

답변1

명령을 지정하지 않으면 모든 리디렉션이 현재 셸에 적용됩니다.다음은 매뉴얼 페이지에서 말하는 내용의 짧은 버전입니다. 내가 이해한 바에 따르면 exec실행이 비어 있으면 새 셸을 시작하지 않고 현재 셸을 변경하지 않으며 코드 0을 반환합니다. 즉 오류 없이 실행된다는 의미입니다.

답변2

예:

명령을 인수로 사용하여 호출할 때.

일반적으로 명령을 실행하면 forkand exec(플러스 파이프 등)가 호출됩니다. 하지만 exec처음에 추가 하면 (예를 들어 exec ls) 호출되지 않으므로 fork쉘이 해당 명령으로 대체됩니다. 즉, 명령은 셸과 동일한 프로세스에서 실행됩니다(셸은 더 이상 존재하지 않습니다).

명령이 호출되지 않을 때.

리디렉션을 적용한 다음 적용됩니다.

관련 정보