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