쉘 스크립트의 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: can move '/etc/letsencrypt/live/autotest.domain.com'을 자체 하위 디렉터리인 '/etc/letsencrypt/live/autotest.domain.com/autotest.domain.com'으로 이동할 수 없다는 것입니다. 다른 서버에서 호스트 이름이 변경되었는지 확인했을 때 설정된 호스트 이름도 작동하지 않는 것 같습니다(특히 변수의 경우). "" 및 {} 등을 추가하는 등 변수와 관련하여 많은 작업을 시도했지만 아무것도 작동하지 않았습니다.

이와 관련하여 누군가 나를 도울 수 있습니까?

답변1

쉘 변수는 작은따옴표로 묶인 텍스트로 확장되지 않습니다 '. "쉘 변수가 있는 문자열에는 큰따옴표를 사용하십시오 .

관련 정보