arrays - 当数组包含空格时bash

标签 arrays bash

我得到了以下代码。我想将 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 的(第一行)扩展,但仅限于第一个和第二个字段(这些将放入变量ab),其余部分将放入c。如果字符串中有反斜杠,则使用 -r 开关;如果没有这个,反斜杠将被视为转义字符。

关于arrays - 当数组包含空格时bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016277/

相关文章:

sql - postgres json数组元素和空返回

javascript - 第 n 个最长字符串排序

bash - 当分支和标签都指向同一个提交时,如何引用该分支?

ruby - 制作命令行程序 "full screen"

c - 将文本文件中的数字列表读入二维数组

c - C中小写到大写

php - 在电子邮件中发送 mysql 获取数组数据

bash - 合并多个 MPG 文件

sql - 脚本备份网站及其数据库

bash - awk 以秒为单位的日期范围