2013-06-10 3 views
2

조건 신택스 에러가 20에서 30 사이의 값인지 확인하는 경우에는 다음과 같이 그것이 오류가I 간단한 스크립트를 작성

while true 
do 
echo 'enter a number between 20 and 30' 
read e 
if [ $e -lt 30] && [$e -gt 20 ] 
then 
    echo ' you entered desired number' && break 
fi 
done 

:하지만

라인 (5) : [: 누락 `] '

어디서 잘못 됐습니까? 당신은 당신이 명령 줄 인수를 전달하는 것처럼 취급해야 [ 이후

if [ $e -lt 30 ] && [ $e -gt 20 ] 

이 프로그램 *을 할 수 있습니다 :

답변

4

에 의해 내면화 될 수로 할 수있다 말한다. 스크립트를 디버그 모드로 실행하려면 명령 프롬프트에서 다음을 수행하십시오.

bash -x scriptname.sh

2

당신은 [] 주위에 약간의 공백이 필요합니다.

if [ $e -lt 30 ] && [ $e -gt 20 ] 
      ^ ^
       |  | 
       |  | 
--------------------- 

항상 시도하고 디버그 모드에서 bash는 스크립트를 실행

는 * 나는 그것이 어떤 쉘 당신은 여기에 공간이 필요

2

당신은 수와 브라켓 사이의 공간이 필요합니다. 5 행을 읽어야합니다.

if [ $e -lt 30 ] && [ $e -gt 20 ]