Reading a delimited string into an array in Bash

前端 未结 5 1305
旧时难觅i
旧时难觅i 2020-11-29 15:17

I have a variable which contains a space-delimited string:

line=\"1 1.50 string\"

I want to split that string with space as a delimiter and

5条回答
  •  温柔的废话
    2020-11-29 15:40

    If you need parameter expansion, then try:

    eval "arr=($line)"
    

    For example, take the following code.

    line='a b "c d" "*" *'
    eval "arr=($line)"
    for s in "${arr[@]}"; do 
        echo "$s"
    done
    

    If the current directory contained the files a.txt, b.txt and c.txt, then executing the code would produce the following output.

    a
    b
    c d
    *
    a.txt
    b.txt
    c.txt
    

提交回复
热议问题