나중에 추가 처리를 위해 파일 내용을 배열로 읽으려고 합니다. read
배열 값을 채우는 명령을 사용하고 있습니다 . 다음은 오류를 일으키는 코드 부분입니다.
read -r -a changefileArr < changedfile.txt
다음은 내가 받은 오류입니다.
read: bad option: -a
나는 사용하고있다이것참고로 홈페이지. 저는 MAC OS Monterey를 사용하고 있습니다(기본 쉘은 zsh입니다). 인덱스 기반 반복을 수행해야 하기 때문에 배열을 사용해야 합니다. 나중에 코드에서 색인이 필요합니다. 더 좋은 방법이 있다면( read
명령을 사용하지 않더라도) 댓글을 남겨주세요.
편집 1:
- 저는 이러한 명령을 테스트하기 위해 Linux 터미널을 사용하고 있습니다. 나는 어떤 Shebang도주지 않았습니다.
read -a
zsh에서 작동하지 않는 경우 . zsh에 대해 얻을 수 있는 동일한 명령이 있습니까?
답변1
사용 중이므로 내장 명령(예: 작동해야 함) 을 zsh
기대해서는 안 됩니다 .bash
read
입력하면 튜토리얼을 계속 진행할 수 있는 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
기본 대화형 셸을 사용하는 경우에도 셸 스크립트를 작성하고 사용할 수 있습니다.