shell脚本数组来自变量的数据

时间:2017-09-12 13:12:44

标签: linux shell

我正在尝试在主机文件中扩展服务器名称,格式为

#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

0 个答案:

没有答案