Это потому, что sudo -s
запускает корневую оболочку, и именно там вы окажетесь после ввода пароля. Если вы затем выйдете из оболочки, вы увидите код , который требует sudo
:
$ foo.sh
Code that don't need sudo.
[sudo] password for terdon:
[root@tpad terdon]# exit
Code that need sudo
В общем, во всех сценариях, когда вы говорите ему запустить команду, сценарий продолжит выполнение только после команды закончил. Итак, когда ваш скрипт запустил sudo -s
, он дождался его завершения, прежде чем продолжить. Вот почему текст был напечатан после того, как я запустил exit
(или нажал ctrl + D ).