
МотивированныйКак изменить команду так, чтобы она запускалась без привилегий суперпользователя, но с измененным значением лимита?, в оболочке 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
Вы вернетесь к предыдущей оболочке и exec
полностью замените экземпляр ksh93.