오류를 발생시키는 작은 쉘 스크립트가 있습니다.
파일이 예기치 않게 종료되었습니다.
스크립트는 다음과 같습니다.
#!
if [ t -eq 1 ]
then
echo " TEST1 "
else
echo " TEST LAST LOOP "
fi
답변1
스크립트에는 해당 오류가 발생하는 항목이 없습니다. 다음을 sh ./script.sh
사용하여 스크립트를 실행하면
TEST LAST LOOP
출력으로. Condition ) 하는bash ./script.sh
실행t
으로 경우 . 를 사용하여 실행하면 올바른 - 줄을 추가하지 않았기 때문에 쉘에서 "해당 파일이나 디렉터리가 없습니다"라는 메시지가 표시될 가능성이 높습니다 . sh
sh
bash
./script.sh
#!
이 스크립트에서는 표준 POSIX 기능만 사용하므로 #!/bin/sh
-line을 사용할 수 있습니다 .#!
(char)가 정수가 아니기 [ t -eq 1 ]
때문에 테스트가 유지되지 않습니다. t
설정 중이라면바꾸다 t
[ "$t" -eq 1 ]
테스트에 사용할 어딘가의 정수입니다 .
쉘에서 "예기치 않은 파일 끝"이라는 메시지를 표시할 수 있는 유일한 방법은 스크립트를 DOS 텍스트 파일로 변환하고 bash
.
이 오류가 발생하면 스크립트 파일은 DOS 텍스트 파일일 수 있습니다(Windows 컴퓨터에서 생성되었을 수 있음). dos2unix
스크립트를 실행해야 합니다 .
바라보다관련 질문dos2unix
.
답변2
shebang 줄이 누락되어 #!/bin/sh
정의 t
되지 않았습니다 .
답변3
#!
로 대체되거나#!/bin/sh
실행sh ./script.sh
되며 t는 정수가$t
아닌 으로 설정되어야 합니다t
.