我得到了以下代码。我想将 cc dd ee ff 作为数组 [2]
keyvariable="aa bb cc dd ee ff"
while read -a line;
do
a=$(echo "${line[0]}")
b=$(echo "${line[1]}")
c=$(echo "${line[2]}")
done <<< "$keyvariable"
echo "$a $b $c"
当前输出:
aa bb cc
我想要以下输出,其中 aa 是 [0] bb 是 [1],cc dd ee 是 [2]
aa bb cc dd ee
最佳答案
这里根本不需要 while
循环。
您根本不想在此处将 read
与 -a
开关一起使用。相反,你想要:
read -r a b c <<< "$keyvariable"
在这种情况下,read
将在空格上拆分变量 keyvariable
的(第一行)扩展,但仅限于第一个和第二个字段(这些将放入变量a
和b
),其余部分将放入c
。如果字符串中有反斜杠,则使用 -r
开关;如果没有这个,反斜杠将被视为转义字符。
关于arrays - 当数组包含空格时bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016277/