![접기: 첫 번째 문자만 출력](https://linux55.com/image/143164/%EC%A0%91%EA%B8%B0%3A%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%EB%AC%B8%EC%9E%90%EB%A7%8C%20%EC%B6%9C%EB%A0%A5.png)
문자열을 사용하여 fold
문자 배열을 만들고 있습니다.
INPUT=$1
arr=($(fold -w1 <<< "$INPUT"))
echo "$arr"
echo "$arr[@]"
명령을 사용하여 ./myProgram 1234
스크립트를 실행합니다.
예상 출력:1 2 3 4
내가 얻는 것: 1
그리고1[@]
답변1
출력을 배열에 올바르게 할당했지만 역참조에 대한 도움이 필요합니다.
에코 "$arr"
간단하게 배열의 첫 번째 요소(예: )를 출력합니다 1
.
에코 "$arr[@]"
중괄호가 누락되어 bash에게 배열을 첨자로 지정하고 $arr
위와 같이 첫 번째 요소를 역참조한 다음 인쇄합니다 [@]
.
대신 다음을 사용하세요(예:).
printf '%s ' "${arr[@]}"
보다배열에 관한 bash 매뉴얼 섹션그것은 말한다:
참조 배열의 모든 요소를 사용할 수 있습니다
${name[subscript]}
. 쉘의 파일 이름 확장 연산자와의 충돌을 방지하려면 중괄호가 필요합니다.