![이 간단한 bash 스크립트가 if/then/else에 오류를 발생시키는 이유는 무엇입니까? [폐쇄]](https://linux55.com/image/62286/%EC%9D%B4%20%EA%B0%84%EB%8B%A8%ED%95%9C%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20if%2Fthen%2Felse%EC%97%90%20%EC%98%A4%EB%A5%98%EB%A5%BC%20%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%A4%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
이 스크립트를 실행하려고 하면 다음과 같습니다.
clear
echo -n "please enter a value"
read num
if [ "$num" -eq 8 ] then
echo "you entered 8"
else
echo "the number you entered was not 8"
다음 출력/오류가 나타납니다.
값 5를 입력하십시오
. ./script.sh: 9행: 'else' 태그 근처에 예기치 않은 구문 오류가 있습니다.
./script.sh: 9행: else'
이 스크립트가 실행되지 않는 이유는 무엇입니까?
답변1
절 뒤에 세미콜론이나 개행 문자가 누락되어 있고 if
블록 끝에는 없습니다.fi
if
#!/bin/bash
clear
echo -n "please enter a value"
read num
if [ "$num" -eq 8 ]
then
echo "you entered 8"
else
echo "the number you entered was not 8"
fi
기타 제안사항:
#!
스크립트는 항상 사용할 인터프리터를 시스템에 알려주는 줄로 시작해야 합니다.- 귀하의 비교
[ "$num" -eq 8 ]
는 수치 비교입니다. 사용자가 실제로 숫자를 입력할지 확실하지 않은 경우 문자열 비교를 사용해 보세요.[ 8 = "$num" ]
read
명령문 에 프롬프트를 포함할 수 있습니다 .read -p "Please enter a value: " num