Linux

shell 腳本中 set-hostname 和 mv 命令的變數

  • April 8, 2022

我在 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 變數的字元串使用雙引號"

引用自:https://serverfault.com/questions/1098111