我正在编写一个bash脚本,以在大约20台不同的服务器上使用rsync并更新文件。
我想通了rsync部分。我遇到的麻烦是要遍历变量列表。
到目前为止,我的脚本如下所示:
#!/bin/bash
SERVER1="192.xxx.xxx.2"
SERVER2="192.xxx.xxx.3"
SERVER3="192.xxx.xxx.4"
SERVER4="192.xxx.xxx.5"
SERVER5="192.xxx.xxx.6"
SERVER6="192.xxx.xxx.7"
for ((i=1; i<7; i++))
do
echo [Server IP Address]
done
[Server IP Address]
关联变量的值应在哪里。因此,当i = 1时,我应该回显$ SERVER1的值。
我已经尝试过几次迭代,包括
echo "$SERVER$i" # printed the value of i
echo "SERVER$i" # printer "SERVER" plus the value of i ex: SERVER 1 where i = 1
echo $("SERVER$i") # produced an error SERVER1: command not found where i = 1
echo $$SERVER$i # printed a four digit number followed by "SERVER" plus the value of i
echo \$$SERVER$i # printed "$" plus the value of i
自编写脚本以来已经有很长时间了,所以我知道我缺少一些东西。另外,我确定我正在混合使用C#可以完成的工作,这在过去11年中一直在使用。
我要做什么甚至有可能吗?还是应该将这些值放入数组中并遍历整个数组?对于生产IP地址和位置名称,我也需要这样做。
所有这些都是为了不必重复执行将用于同步远程服务器上的文件的代码块。
感谢您的所有回复和评论。我很可能会采用数组方法。
—
保罗·斯通纳