Arrays 如何使用bash脚本并排打印两个数组?

Arrays 如何使用bash脚本并排打印两个数组?,arrays,bash,printing,awk,echo,Arrays,Bash,Printing,Awk,Echo,无论是在谷歌上还是在stackoverflow上,我都找不到一个简单的好答案 基本上,我有两个数组需要并排打印到终端中,因为一个数组是术语列表,另一个是术语定义。有人知道这样做的好方法吗 提前感谢。假设两个数组的长度相同,您可以使用C样式的for循环来完成此操作: for ((i=0; i<=${#arr1[@]}; i++)); do printf '%s %s\n' "${arr1[i]}" "${arr2[i]}" done ((i=0;i这里有一个“一行”: paste使

无论是在谷歌上还是在stackoverflow上,我都找不到一个简单的好答案

基本上,我有两个数组需要并排打印到终端中,因为一个数组是术语列表,另一个是术语定义。有人知道这样做的好方法吗


提前感谢。

假设两个数组的长度相同,您可以使用C样式的for循环来完成此操作:

for ((i=0; i<=${#arr1[@]}; i++)); do
    printf '%s %s\n' "${arr1[i]}" "${arr2[i]}"
done
((i=0;i这里有一个“一行”:


paste使用关联数组?对于那些在POSIX模式下使用shell的人:和纯Bash方式:循环数组索引不是更容易吗?比如“${!arr1[@]}”中的
i
?@oguzismail是的,它会更好地处理稀疏数组
paste <(printf "%s\n" "${terms[@]}") <(printf "%s\n" "${defs[@]}")
paste -d' ' <(printf "%-12.12s\n" "${terms[@]}") <(printf "%s\n" "${defs[@]}")