제가 작성 중인 스크립트의 경우 명령 출력을 배열로 변환해야 합니다. 단순화하기 위해 echo를 사용하여 예를 만들었습니다.
arr=( $(echo '"test example" "test2 example"') )
내가 원하는 것은 배열의 첫 번째 요소입니다
test example
하지만 이렇게 할 때:
echo ${arr[0]}
알겠어요
"test
내가 원하는 결과를 얻으려면 어떻게 해야 합니까?
답변1
생각하다에코명령과 같이 올바른 출력을 생성하지 않으므로 다음을 포함해야 합니다.sed
mapfile -t arr < <(
echo '"test example1" "test2 example2"' |
sed 's/" "/"\n"/g'
)
답변2
eval "arr=( $(echo '"test example" "test2 example"') )"
echo "${arr[0]}"
for e in "${arr[@]}"; do
echo "<$e>"
done
산출
test example
<test example>
<test2 example>