我在 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: cannot move '/etc/letsencrypt/live/autotest.domain.com' to a subdirectory of its own, '/etc/letsencrypt/live/autotest.domain.com/autotest.domain.com'当我检查另一台服务器以查看主机名是否已更改时,即使设置主机名似乎也不起作用(尤其是使用变量)。围绕变量尝试了很多东西,比如添加“”和 {} 等,但没有任何效果。
有人可以在这方面帮助我。
Shell 变量不在单引号
'
文本中展开。对带有 shell 变量的字符串使用双引号"
。