Odpowiedzi:
ssh user@remotehost "bash -s" < local_script.sh
-s
sprawia, że bash jest czytany ze standardowego wejścia.
Jeśli musisz przekazać argumenty do skryptu:
ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"
Zwróć uwagę na podwójny myślnik --
(oznaczający koniec opcji polecenia) i cudzysłowy wokół argumentów.
-s
i potrzebujesz tylko, bash
jeśli naprawdę chcesz wymusić użycie bash
. Zwykle możesz po prostussh user@remotehost < local_script.sh
odpowiedź phoibos działa dla mnie.
ssh user@remotehost "bash -s" < local_script.sh
Musisz jednak upewnić się, że skrypt wyraźnie wywołuje polecenie exit, w przeciwnym razie po wykonaniu skryptu pozostaniesz zalogowany na serwerze zdalnym.
Krótko mówiąc, nie zapomnij umieścić tego na końcu local_script.sh
:
exit 0