как использовать exit внутри здесь doc

У меня есть сценарий, когда я использую несколько ssh-соединений внутри HEREDOC, например:

ssh -A -tt -l user 192.168.1.2 <<EOF ping server1 -c3 ssh server2 nslookup www.gogole.com exit ssh server3 ifconfig exit EOF 

однако, когда я использую exit внутри EOF, он перестает обрабатывать скрипт вместо выхода из сеанса SSH, любая идея / трюк, как я могу выйти из сеанса ssh вместо всего скрипта?

 #'~.' - terminate session - doesn't work unfortunately 

  • Удаленный ПК, доступный с помощью ssh, scp / rsync, не работает (больше)
  • Centos 6.5 не может войти в систему с открытым ключом и войти в систему sloooooow
  • SSH jumphost без учетных записей пользователей на jumphost
  • Что произойдет, если я экспортирую переменную $ HOME при входе в систему?
  • Что замедляет мой вход в ssh?
  • Вперед ssh для пользователя Git для сервера Git
  • Как заставить SSH игнорировать некоторые пользовательские логины?
  • Разрешить подключение к SSH не используя мою VPN
  • 2 Solutions collect form web for “как использовать exit внутри здесь doc”

    Если вы хотите придерживаться здесь документа

     ssh -A -tt -l user 192.168.1.2 <<EOF ping server1 -c3 ssh server2 <<foobar1 nslookup www.gogole.com more commands exit foobar1 ssh server3 <<foobar2 ifconfig more more commands exit foobar2 EOF 
    • вы можете использовать любое слово, чтобы закрыть здесь документ.
    • deleimiter должен начать линию.
    • или используйте <<-word
     ssh -A -tt -l user 192.168.1.2 <<EOF ping server1 -c3 ssh server2 nslookup www.gogole.com ssh server3 ifconfig EOF 

    Команда ssh выйдет, когда закончит выполнение заданных команд.

    Для нескольких команд используйте sh -c :

     ssh -A -tt -l user 192.168.1.2 <<EOF ping server1 -c3 ssh server2 sh -c 'nslookup www.gogole.com; echo done' ssh server3 sh -c 'ifconfig; df -k' EOF 

    Если на серверах2 и server3 есть несколько основных вещей, создайте сценарии на этих серверах и запустите их.

    Linux и Unix - лучшая ОС в мире.