Тривиальное исправление заключается в размещении двойных кавычек вокруг строки, которая может оказаться пустой.
until [ "$(ssh ...)" = "ok" ]; do ...
Тест Bash-only [[
более терпим, поэтому вы можете использовать [[
... ]]
вместо [
... ]
и не нужно добавлять кавычки.
... но лучшим решением будет поиск состояния выхода из ssh
:
until ssh ...; do ...
Если вы хотите, чтобы операция была тихой, добавьте перенаправление.
until ssh user@hostname true >/dev/null 2>&1; do ...
с любыми дополнительными параметрами, которые вы хотите, конечно.Вам может понадобиться добавить один или несколько параметров ssh -t
, если он жалуется на отсутствие подключения к TTY, например.