![문자열 형식만 사용하여 bash 배열 구성](https://linux55.com/image/124184/%EB%AC%B8%EC%9E%90%EC%97%B4%20%ED%98%95%EC%8B%9D%EB%A7%8C%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20bash%20%EB%B0%B0%EC%97%B4%20%EA%B5%AC%EC%84%B1.png)
문자열 값을 환경 변수로 전달하고 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
그러나 신뢰할 수 있는 데이터 소스에만 사용할 수 있습니다.