如何在shell脚本中打破数组?

时间:2015-06-27 14:53:07

标签: arrays shell

我有一个字符串,想要打破一个数组,但我无法打破。

#!/bin/bash
    KL=("GGJSTKR 10MG TkBS" "MAVICAL 10.8G PAWDER FR ORAL SALN SANHGT" "SDLPADLL 580TG/39MG CAPLETS" "AKHAC 1KL KYS RJOPS")

    IFS=' ' read -a TEST_ARR <<< "$KL"

    echo ${TEST_ARR[1]}

    Output

    10MG

The output should be like this

"GGJSTKR 10MG TkBS"

例如: -

"GGJSTKR 10MG TkBS" "MAVICAL 10.8G PAWDER FR ORAL SALN SANHGT" "SDLPADLL 580TG/39MG CAPLETS" "AKHAC 1KL KYS RJOPS"

我的目标是实现这样的目标

${TEST_ARR[0]}="GGJSTKR 10MG TkBS"
${TEST_ARR[1]}="MAVICAL 13.8G PAWDER FR ORAL SALN SANHGT"
${TEST_ARR[2]}="SDLPADLL 580TG/39MG CAPLETS"
${TEST_ARR[3]}="AKHAC 1KL KYS RJOPS"

2 个答案:

答案 0 :(得分:0)

不确定为什么你不只是使用KL,但我相信你在寻找:

TEST_ARR=("${KL[@]}")

答案 1 :(得分:0)

如果您坚持使用read -a,那么我认为这就是您所追求的目标:

#!/bin/bash

KL=("GGJSTKR 10MG TkBS" "MAVICAL 10.8G PAWDER FR ORAL SALN SANHGT" "SDLPADLL 580TG/39MG CAPLETS" "AKHAC 1KL KYS RJOPS")

IFS='"' read -a TEST_ARR <<< "${KL[*]}"

echo ${TEST_ARR[0]}