문자열 형식만 사용하여 bash 배열 구성

문자열 형식만 사용하여 bash 배열 구성

문자열 값을 환경 변수로 전달하고 bash가 이를 배열로 인식하도록 하는 방법이 있습니까? 즉, bash에게 문자열이 배열임을 알려주는 특별한 문자열 형식이 있습니까? 아니면 배열과 비슷한 것인가요?

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_10_02.html

예를 들어:

#!/usr/bin/env bash

my_array="$this_is_an_env_var"

답변1

:> export ar=(foo bar baz) # create and "export" array
:> bash -c 'echo ${ar[1]}' # array is not visible in a regular child process

:> declare -p ar           # get a string which correctly creates the array
declare -a ar=([0]="foo" [1]="bar" [2]="baz")
:> my_array="$(declare -p ar)" bash -c 'eval "$my_array";echo ${ar[1]}'
bar

eval문자열 변수를 배열 변수로 변환합니다 . eval그러나 신뢰할 수 있는 데이터 소스에만 사용할 수 있습니다.

관련 정보