¿Se ejecutará alguna vez el comando de suspensión en este comando?

¿Se ejecutará alguna vez el comando de suspensión en este comando?

Motivado por¿Cómo puedo cambiar mi comando para que se ejecute sin privilegios de superusuario pero con el valor límite modificado?, en un shell bash, si ejecuto

exec su $LOGNAME && sleep 100

¿Se ejecutará alguna vez el comando de suspensión?

Creo que no, porque exec su $LOGNAMEreemplazará el shell en el proceso actual con otro shell. Cuando salgo del nuevo shell normalmente (para &&), el proceso finaliza y no hay ningún proceso para ejecutar el comando de suspensión.

Gracias.

Respuesta1

No debería. O exectiene éxito y se reemplaza el shell, o execfalla, en cuyo caso &&no se ejecuta el siguiente comando. exec somcmd || echo failo exec 2>somefile && echo oksería diferente, sin embargo.

Respuesta2

No, no lo hará, verifique:

ksh93
$ exec /bin/echo bla && sleep 1 && echo foo
bla

Volverá al shell anterior y execreemplazará la instancia ksh93 por completo.

información relacionada