【发布时间】:2016-09-29 18:37:38
【问题描述】:
我正在尝试用多个变量初始化一个数组,如下所示。
StringOne="This is a Test String"
StringTwo="This is a New String"
read -r -a Values <<< "$StringOne" "$StringTwo"
但似乎数组仅从第一个变量中获取值。即 StringOne
$ echo ${Values[0]}
This
$ echo ${Values[1]}
is
$ echo ${Values[2]}
a
$ echo ${Values[3]}
Test
${Values[4]}
String
$ echo ${Values[5]}
$ echo ${Values[6]}
$
这种为数组初始化传递变量值的方式有什么问题?我们不能用
【问题讨论】:
-
我也想要
${Values[5]}=This ${Values[6]}=is ${Values[7]}=a ${Values[8]}=New -
这能解决您的问题吗?
read -r -a Values <<< "$StringOne $StringTwo" -
感谢@gudok 。这正在工作
-
旁白:
declare -p Values为您提供了一种更简单的方式来显示数组的内容。 -
...顺便说一句,您的原始代码所做的完全等同于:
read -r -a Values "$StringTwo" <<<"$StringOne"