배열의 개별 요소를 인쇄할 수 없습니다.

배열의 개별 요소를 인쇄할 수 없습니다.

저는 UNIX 스크립트에서 배열이 어떻게 작동하는지 알아보기 위해 테스트 스크립트를 작성 중입니다.

#! /bin/bash
arr=(one two three)
echo "${arr[0]}"

위의 내용은 배열의 0번째 위치인 "1"을 인쇄할 것으로 예상했습니다.

하지만 실행하면 bash test.sh출력이 다음과 같이 인쇄됩니다.

(one two three)

변수를 문자열로 취급한다고 생각합니다. (저도 시도해 보았 sh test.sh으나 성공하지 못했습니다.)

declare -a arr다음과 같은 진술을 추가하려고 하면not a valid identifier

uname -a
Linux XXXXXXX 2.6.32-754.31.1.el6.x86_64 #1 SMP Mon Jun 15 08:08:31 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux

여기에 도움이 필요합니다. 감사해요.

답변1

귀하의 의견에 감사드립니다. 이 댓글은 저를 다르게 생각하게 만들었습니다. 문제는 EOL 변환입니다. .sh 파일은 Windows에서 생성되며 "CR 및 LF"의 EOL을 갖습니다. 나는 notepad++를 사용하여 UNIX 스타일 EOL(단지 "LF")로 변환했는데 문제가 사라졌습니다.

관련 정보