在此处文档中逐行打印数组

在此处文档中逐行打印数组

我目前这里有以下文档

message=`cat <<-EOF
Test data:
Test data 1:
"${Test_data_array[@]}"
EOF`
echo "$message"

有没有办法让数组在每个条目中显示多行,就像这一行,但在此处的文档中?

printf '%s\n' "${Test_data_array[@]}"

答案1

使用IFS[*]打印数组:

OLDIFS="${IFS}"
IFS=$'\n'

message=`cat <<-EOF
Test data:
Test data 1:
${Test_data_array[*]}
EOF`

IFS="${OLDIFS}"

echo "$message"

答案2

message=`cat <<-EOF
Test data:
Test data 1:
$(printf "%s\n" "${Test_data_array[@]}")
EOF`

echo "$message"

答案3

IFS='
'; message="\
Test data:
Test data 1:
${Test_data_array[*]}
"

相关内容