동기는슈퍼유저 권한 없이 명령이 변경된 제한 값으로 실행되도록 어떻게 변경합니까?, bash 쉘에서 실행하면
exec su $LOGNAME && sleep 100
수면 명령이 실행됩니까?
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 인스턴스를 완전히 대체하여 이전 셸로 돌아갑니다 .