이 명령의 sleep 명령이 실행됩니까?

이 명령의 sleep 명령이 실행됩니까?

동기 부여슈퍼유저 권한 없이 명령이 변경된 제한 값으로 실행되도록 어떻게 변경할 수 있습니까?, bash 쉘에서 실행하면

exec su $LOGNAME && sleep 100

sleep 명령이 실행됩니까?

나는 그렇지 않다고 생각한다. 왜냐하면 exec su $LOGNAME현재 프로세스의 쉘을 다른 쉘로 대체할 것이기 때문이다. 새 셸을 정상적으로 종료하면(for &&) 프로세스가 종료되고 sleep 명령을 실행할 프로세스가 없습니다.

감사해요.

답변1

그러면 안됩니다. 성공 exec하여 셸이 교체되거나, exec실패하면 &&다음 명령이 실행되지 않습니다. exec somcmd || echo fail아니면 exec 2>somefile && echo ok다를 수도 있지만.

답변2

아니요, 그렇지 않습니다. 다음을 확인하세요.

ksh93
$ exec /bin/echo bla && sleep 1 && echo foo
bla

이전 셸로 돌아가서 execksh93 인스턴스를 완전히 대체합니다.

관련 정보