在bash中同时迭代两个数组
发布时间:2020-12-15 16:14:32 所属栏目:安全 来源:网络整理
导读:我有两个数组。 array=( Vietnam Germany Argentina)array2=( Asia Europe America) 我想同时循环这两个数组,即在两个数组的第一个元素上调用一个命令,然后在第二个元素上调用相同的命令,依此类推。伪代码: for c in $(array[*]}do echo -e " $c is in .
我有两个数组。
array=( Vietnam Germany Argentina ) array2=( Asia Europe America ) 我想同时循环这两个数组,即在两个数组的第一个元素上调用一个命令,然后在第二个元素上调用相同的命令,依此类推。伪代码: for c in $(array[*]} do echo -e " $c is in ......" done 我怎么能这样做?
从anishsane的答案和其中的评论,我们现在知道你想要什么。这里是同样的事情在bashier风格,使用一个for循环。看到
Looping Constructs section in the reference manual.我也使用printf而不是echo。
#!/bin/bash array=( "Vietnam" "Germany" "Argentina" ) array2=( "Asia" "Europe" "America" ) for ((i=0;i<${#array[@]};++i)); do printf "%s is in %sn" "${array[i]}" "${array2[i]}" done 另一种可能性是使用关联数组: #!/bin/bash declare -A continent continent[Vietnam]=Asia continent[Germany]=Europe continent[Argentina]=America for c in "${!continent[@]}"; do printf "%s is in %sn" "$c" "${continent[$c]}" done 根据你想做什么,你可能会考虑这第二种可能性。但是请注意,你不会轻易地控制字段在第二种可能性显示的顺序(嗯,它是一个关联数组,所以它不是真的是一个惊喜)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |