Linux
shell 腳本中 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: 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 變數的字元串使用雙引號"
。