Bash中如何将一个数组元素作为后缀追加到另一数组元素末尾
原脚本问题说明
- 做后缀替换时直接使用
$array[@]不会遍历array的每个元素,只会将整个数组的内容作为单个后缀拼到当前name元素后 - 每次循环直接给
arra赋值,会覆盖上一轮循环的结果,最终只会保留最后一个name元素的拼接结果
正确实现方案
方案1:拼接结果存入数组后统一输出
array=(a b c) name=(toto_ tata_) # 初始化空结果数组 arra=() # 外层遍历所有前缀 for prefix in "${name[@]}"; do # 内层遍历所有后缀 for suffix in "${array[@]}"; do # 拼接后追加到结果数组 arra+=("${prefix}${suffix}") done done # 输出所有结果 printf '%s\n' "${arra[@]}"
方案2:无需存数组直接输出
array=(a b c) name=(toto_ tata_) for prefix in "${name[@]}"; do for suffix in "${array[@]}"; do echo "${prefix}${suffix}" done done
内容的提问来源于stack exchange,提问作者ezceeaaaa
相关产品推荐
相关产品推荐

