
동기 부여슈퍼유저 권한 없이 명령이 변경된 제한 값으로 실행되도록 어떻게 변경할 수 있습니까?, 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
이전 셸로 돌아가서 exec
ksh93 인스턴스를 완전히 대체합니다.