배열에 넣어야 하는 데이터를 가져오는 시나리오가 있습니다. echo를 사용하여 데이터를 배열에 넣은 후에는 인쇄해야 합니다.
v=`cat $FILE | rev | cut -d'|' -f4- | rev | cut -d'|' -f2- | sed 's/|/ /g'`
출력은 다음을 제공합니다.
123.23 3453.234
이 출력은 "arraydemo" 배열에 영향을 미칩니다.
mapfile -t arraydemo < echo "$v"
아무것도 인쇄하지 않으면 echo arraydemo
다음과 같은 오류가 표시됩니다. echo: 해당 파일이나 디렉터리가 없습니다
echo "${arraydemo[@]}"
이는 데이터가 인쇄되는 방식이 아니라 스크립트가 실행될 때의 출력입니다. echo "${arraydemo[@]}"
+ FILE=demo.txt
++ cat demo.txt
++ rev
++ cut '-d|' -f4-
++ rev
++ cut '-d|' -f2-
++ sed 's/|/ /g'
+ var='16.84 15.24'
+ mapfile -t arraydemo
echo ''
답변1
$ a="1234 5678"
$ mapfile -t arraydemo < <(echo "${a}")
$ echo "${arraydemo[@]}"
1234 5678