SSH, возвращающее значение при использовании EOF - PullRequest
3 голосов
/ 01 октября 2019

Я использую оболочку linux bash. Я хочу вернуть значение из ssh при использовании EOF. Я новичок в этом.

result=$(ssh -T -q -o UserKnownHostsFile=/dev/null -o 
StrictHostKeyChecking=no -o ConnectTimeout=60 -o ConnectionAttempts=3 ${host_name} << EOF
 echo "Get details in mysql"
EOF  2>/dev/null)

Это выдает ошибку, говорящую

unexpected EOF while looking for matching `)'

В моем реальном сценарии использования у меня есть несколько команд для запускаудаленный хост и получите результаты. Так что у меня будет много команд linux между EOF

1 Ответ

2 голосов
/ 01 октября 2019

Конечный разделитель (EOF) должен быть один на своей строке:

result=$(ssh -T -q -o UserKnownHostsFile=/dev/null -o 
StrictHostKeyChecking=no -o ConnectTimeout=60 -o ConnectionAttempts=3 ${host_name} << EOF
 echo "Get details in mysql"
EOF
2>/dev/null)

С man bash :

ЗдесьДокументы
Этот тип перенаправления инструктирует оболочку читать входные данные из текущего источника, пока не появится строка, содержащая только разделитель (без конечных пробелов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...