該指令中的 sleep 指令會被執行嗎?

該指令中的 sleep 指令會被執行嗎?

動機是如何更改命令以在沒有超級用戶權限但具有更改後的限制值的情況下運行?,在 bash shell 中,如果我運行

exec su $LOGNAME && sleep 100

sleep 指令會被執行嗎?

我認為不會,因為exec su $LOGNAME會用另一個shell取代目前進程中的shell。當我正常退出新 shell 時(對於&&),進程終止,並且沒有進程執行 sleep 命令。

謝謝。

答案1

不應該。要么exec成功,shell 被替換,要么exec失敗,在這種情況下&&不會運行以下命令。但exec somcmd || echo fail或者exec 2>somefile && echo ok會有所不同。

答案2

不,不會,請檢查:

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

您將返回到先前的 shell,並exec完全取代 ksh93 實例。

相關內容