Відповіді:
ssh user@remotehost "bash -s" < local_script.sh
-s змушує читати bash зі стандартного вводу.
Якщо вам потрібно передати аргументи до свого сценарію:
ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"
Зверніть увагу на подвійний тире --(означає кінець параметрів команди) та лапки навколо аргументів.
-s, і вам потрібно лише в тому bashвипадку, якщо ви дійсно хочете змусити використовувати bash. Зазвичай ви можете простоssh user@remotehost < local_script.sh
відповідь phoibos - це працює для мене.
ssh user@remotehost "bash -s" < local_script.sh
Але ви повинні бути впевнені, що ваш скрипт явно вимагає виходу або ви залишитеся ввійти на віддалений сервер після виконання сценарію.
Якщо коротко, не забудьте поставити це в кінці local_script.sh:
exit 0