我正在尝试在主机文件中扩展服务器名称,格式为
#hostfile
server0[1-2]1
server1[2-3]4
#end
我手动将主机文件中的条目更改为server0 [1-2] 1到(server0 {1..2} 1),并在bash shell中尝试了以下内容,我能够扩展变量:
my_array=(server0{1..2}1)
printf '%s\n' "${my_array[@]}"
Output:
server011
server021
但是当我尝试通过脚本执行相同操作时,它不会在上面打印输出,因为它只是打印以下内容:
server0{1..2}1
server1{2..3}4
变量到数组转换是否有问题?
脚本:
#!/斌/庆典
grep -Ev'#| ^ $'hostfile |读线;
做
my_array =()
如果[echo $line|grep -c 'host1'
-eq 1];
然后
echo $ line>> new_hostfile
elif [echo $line|grep -c '^s'
-eq 1]
然后
M = echo $line|sed -e 's/:/../g' -e 's/\[/{/g' -e 's/\]/}/g'
my_array = “($ M)”
printf'%s \ n'“$ {my_array [@]}”>> new_hostfile
网络连接;
完成
脚本所需的输出是
server011
server021
server124
server134