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

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

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

read n
for ((i=1;i<=$n;i++))
do
echo "Connecting to $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 && reboot'
done

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

Может ли кто-нибудь мне помочь в этом вопросе?

решение1

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

Связанный контент