'읽기' 명령을 통해 파일 내용을 전송할 수 없습니다.

'읽기' 명령을 통해 파일 내용을 전송할 수 없습니다.

나중에 추가 처리를 위해 파일 내용을 배열로 읽으려고 합니다. read배열 값을 채우는 명령을 사용하고 있습니다 . 다음은 오류를 일으키는 코드 부분입니다.

read -r -a changefileArr < changedfile.txt

다음은 내가 받은 오류입니다.

read: bad option: -a

나는 사용하고있다이것참고로 홈페이지. 저는 MAC OS Monterey를 사용하고 있습니다(기본 쉘은 zsh입니다). 인덱스 기반 반복을 수행해야 하기 때문에 배열을 사용해야 합니다. 나중에 코드에서 색인이 필요합니다. 더 좋은 방법이 있다면( read명령을 사용하지 않더라도) 댓글을 남겨주세요.

편집 1:

  • 저는 이러한 명령을 테스트하기 위해 Linux 터미널을 사용하고 있습니다. 나는 어떤 Shebang도주지 않았습니다.
  • read -azsh에서 작동하지 않는 경우 . zsh에 대해 얻을 수 있는 동일한 명령이 있습니까?

답변1

사용 중이므로 내장 명령(예: 작동해야 함) 을 zsh기대해서는 안 됩니다 .bashread

입력하면 튜토리얼을 계속 진행할 수 있는 bash대화형 셸로 들어가게 됩니다 . bash깨닫다지도 시간배열 변수의 잘못된 처리. 이러한 변수(사실 모든 변수)는 사용할 때 큰따옴표로 묶어야 하지만 그렇게 하지 않습니다.

read -r -a changefileArr < changedfile.txt      # Read line of items into array

printf "element: %s\n" "${changefileArr[@]}"    # An example
echo "${changefileArr[@]}"                      # Unpredictable if first value starts with a dash
echo ${changefileArr[@]}                        # WRONG !

bash참고: zsh기본 대화형 셸을 사용하는 경우에도 셸 스크립트를 작성하고 사용할 수 있습니다.

관련 정보