Я намагаюся запустити команду над SSH у цьому документі:
ssh example.com <<END
sudo /etc/init.d/apache2 reload
END
Що зазвичай працює, за винятком випадків, коли я намагаюся запустити щось, що потребує введення, наприклад, пароль для sudo. У такому випадку я отримую таке повідомлення:
sudo: no tty present and no askpass program specified
Я знаю, що можу використовувати -t
прапор на SSH для виділення такої псевдо-tty:
ssh -t example.com "sudo /etc/init.d/apache2 reload"
І воно буде працювати, але коли я спробую те ж саме з тут-документом, він не працює, і я отримаю ту саму помилку, що немає жодного tty:
ssh -t example.com <<END
sudo /etc/init.d/apache2 reload
END
Будь-яка ідея, як я можу зробити цю роботу?
Крім того, якщо вам цікаво, чому я хочу, щоб він працював з документом here, замість того, щоб просто передати його в одному рядку, це тому, що команди введення (їх може бути декілька) надходять із файлу конфігурації, прочитаного сценарієм і я чув, що це дозволяє уникнути неприємностей уникнути команд для лапок, подвійних лапок тощо.