У меня есть скрипт на локальной машине script.sh
. Я хочу запустить его на удаленном сервере, доступ к которому возможен только по нескольким SSH.
скрипт.sh:
ls
ls
ls
Я пытался:
user@localhost:~/$ ssh -At host1 ssh -At host2 "bash -s" -- < ./script.sh
но вывод был разделен на несколько строк:
user@host2:~/$ ls
examples.desktop
user@host2:~/$ ls
examples.desktop
user@host2:~/$ ls
Я также хотел бы, чтобы это выполнялось без необходимости заходить в терминал на удаленной машине.
Как мне заставить скрипт выполняться как одна команда?
решение1
Мне удалось исправить это, сняв флаг -t
, так что ssh не переводил меня в терминал на удаленном хосте.
user@localhost:~/$ ssh -A host1 ssh -A host2 "bash -s" -- < ./script.sh
Выход:
examples.desktop
examples.desktop
examples.desktop
user@localhost:~/$
Это также позволило мне оставаться на локальном хосте, а не перенаправляться в терминал на удаленном хосте.