문자열 값을 환경 변수로 전달하고 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
그러나 신뢰할 수 있는 데이터 소스에만 사용할 수 있습니다.