
Motivado porComo posso alterar meu comando para ser executado sem privilégios de superusuário, mas com o valor limite alterado?, em um shell bash, se eu executar
exec su $LOGNAME && sleep 100
o comando sleep será executado?
Acho que não, pois exec su $LOGNAME
substituirá o shell no processo atual por outro shell. Quando saio do novo shell normalmente (para &&
), o processo termina e não há processo para executar o comando sleep.
Obrigado.
Responder1
Não deveria. O exec
sucesso e o shell são substituídos ou exec
falha, caso em que &&
não executa o comando a seguir. exec somcmd || echo fail
ou exec 2>somefile && echo ok
seria diferente, no entanto.
Responder2
Não, não vai, verifique:
ksh93
$ exec /bin/echo bla && sleep 1 && echo foo
bla
Você voltará ao shell anterior e exec
substituirá completamente a instância ksh93.