このコマンドの sleep コマンドは実行されるでしょうか?

このコマンドの sleep コマンドは実行されるでしょうか?

動機スーパーユーザー権限なしで、変更された制限値でコマンドを実行するように変更するにはどうすればよいですか?bashシェルで、

exec su $LOGNAME && sleep 100

sleep コマンドは実行されるでしょうか?

exec su $LOGNAME現在のプロセス内のシェルを別のシェルに置き換えるため、そうではないと思います。新しいシェルを通常どおり終了すると ( の場合&&)、プロセスが終了し、sleep コマンドを実行するプロセスがなくなります。

ありがとう。

答え1

そうなるはずはありません。 がexec成功してシェルが置き換えられるか、 がexec失敗して&&次のコマンドが実行されないかのどちらかです。ただし、exec somcmd || echo failまたは はexec 2>somefile && echo ok異なります。

答え2

いいえ、そうではありません。以下を確認してください:

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

以前のシェルに戻り、execksh93 インスタンスが完全に置き換えられます。

関連情報