Рейтинг:0

Переменные в команде set-hostname и mv в сценарии оболочки

флаг cn

У меня есть следующий скрипт в Shell:

читать н
для ((i=1;i<=$n;i++))
делать
echo "Подключение к $publicip"
ssh -i ./key.txt root@$publicip 'hostnamectl set-hostname autotest$i.domain.com && mv /etc/letsencrypt/live/autotest.domain.com /etc/letsencrypt/live/autotest$i.domain .com && перезагрузка'
сделано

Команда mv использует переменную из приведенных выше команд. Но, похоже, это не работает.Я получаю сообщение об ошибке: mv: невозможно переместить '/etc/letsencrypt/live/autotest.domain.com' в подкаталог самого себя, '/etc/letsencrypt/live/autotest.domain.com/autotest.domain.com' Даже установка имени хоста также не работала (особенно с переменными), когда я проверил другой сервер, чтобы увидеть, изменилось ли имя хоста. Пробовал много вещей вокруг переменных, таких как добавление "" и {} и т. д., но ничего не получалось.

Может ли кто-нибудь помочь мне в этом отношении.

Рейтинг:1
флаг fr

Переменные оболочки НЕ раскрываются в одинарных кавычках ' текст. Используйте двойные кавычки " для строк с переменными оболочки.

serverstackqns avatar
флаг cn
Комментарий с правильным ответом: ssh -i ./key.txt root@$publicip "hostnamectl set-hostname autotest$i.domain.com && mv /etc/letsencrypt/live/autotest.domain.com /etc/letsencrypt/live/autotest$i.domain .com && перезагрузка"

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.