Следующая функция зависает:
ssh() {
local RESULTS;
RESULTS=$(ssh $USERNAME@$SERVER $SSH_COMMAND1);
echo $RESULTS;
}
ssh;
в то время как, если я выполняю следующие команды, они хорошо работают:
RESULTS=$(ssh $USERNAME@$SERVER $SSH_COMMAND1);
echo $RESULTS;
Кто-то может вести меня к правильному направлению поиска ошибки?
У вас рекурсивная ошибка. Вы определяете функцию, которая называется 'ssh', затем вызываете ту же самую функцию в своей функции. Это приводит к рекурсивному циклу.
Укажите абсолютный путь к двоичному файлу ssh
, и это должно его исправить.
Я только что сделал ту же ошибку. Я думаю, вы также можете использовать команду command
для запуска команды (сам двоичный файл), которая имеет то же имя, что и функция, чтобы избежать жесткого кодирования пути к двоичному файлу:
ssh() {
local RESULTS;
RESULTS=$(command ssh $USERNAME@$SERVER $SSH_COMMAND1);
echo $RESULTS;
}
Хотя для чего вы делаете здесь, я рекомендую назвать функцию по-другому; ssh
— очень распространенная команда, от которой никто не ожидал такого поведения!