o comando sleep neste comando será executado?

0

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.

    
por Tim 01.06.2018 / 14:10

2 respostas

1

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.

    
por 01.06.2018 / 14:29
0

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.

    
por 01.06.2018 / 14:26

Tags