쉘 스크립팅 책을 읽고 있는데 배열 부분에서 막혔습니다. 배열을 선언할 때다음과 같이 스크립트를 실행하세요.:
sh hello.sh
ZSH에서도 오류가 표시됩니다.
one.sh: 2: Syntax error: "(" unexpected
내가 달릴 때이렇게하면 ./hello.sh
매력처럼 작동합니다.
이게 스크립트야
#!/bin/bash
myarr=(on two three four five)
echo "${myarr[1]}"
exit 0
노트: 왜 작동하지 않는지 알려주세요 sh
. 저는 쉘을 처음 사용합니다!
답변1
그 이유는 Bourne Shell( sh
)이 배열을 지원하지 않기 때문입니다(원하는 방식이 아님). 따라서 , 유지 등을 사용 하지 sh
마십시오 .bash
ksh
zsh
자세한 내용은 다음에서 확인할 수 있습니다.이 답변
Bourne 쉘 또는 POSIX sh 언어 사양에서는 배열이 지원되지 않습니다. 또는 위치 매개변수($1, $2, $@, 즉 함수당 배열도 있음)라는 하나의 배열만 갖습니다.
f run as는 shebang 및 현재 쉘과 독립적으로 sh hello.sh
읽혀 집니다.sh