Во-первых, это не работает так, как вы думаете.
Команды в скрипте выполняются последовательно. su
(Было это удалось) будет выполнять интерактивный сеанс работы с оболочкой и ждать ввода пользователя (команды). Только после того, как su
существует, второй whoami
работает (показ username
).
Во всяком случае, ваш su
не работает на самом деле.
Во-первых, su
точно выводит какое-то сообщение об ошибке. Что это такое? Вы фиксируете только стандартный вывод в ваших командах. Захватить вывод ошибки тоже ( 2>&1
). Скорее всего, происходит сбой, поскольку su
может потребоваться интерактивный терминал, в то время как Plink с -m
коммутатором по умолчанию использует неинтерактивный терминал. Добавление -t
переключателя помогает в этом случае.
Обратите внимание, что автоматизация su
вообще плохая идея. Если вам нужно выполнить некоторые команды, требующие прав суперпользователя, лучшим решением будет связать выделенный закрытый ключ с командами в sudoers
файле. А потом используйте sudo
и закрытый ключ в Plink.