Bashは文字列を文字列配列に変換しますか?

Bashは文字列を文字列配列に変換しますか?

次の文字列があります。

8080 "ac ac df asd" 9019 "f v adfs" 1 "123 da 123x"

Bashを使ってこれをこのような配列に変換する賢い方法はありますか?

8080 "ac ac df asd"
9019 "f v adfs"
1 "123 da 123x"

ベストアンサー1

# define function
foo() { while [ -n "$2" ]; do array+=( "\"$1\" \"$2\"" ); shift 2; done; }

# call function with string
foo 8080 "ac ac df asd" 9019 "f v adfs" 1 "123 da 123x"

# print array
printf "%s\n" "${array[@]}"

出力:

"8080" "ac ac df asd"
"9019" "fv adfs"
「1」「123 123x」

おすすめ記事