
動機是如何更改命令以在沒有超級用戶權限但具有更改後的限制值的情況下運行?,在 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 實例。