질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

오타 주의하세요

작성자 정보

  • 이영종 작성
  • 작성일

컨텐츠 정보

본문

쉘스크립트나 기타 소스코드 작성시에 띄어쓰기와 같은 오타를 조심하셔야 합니다.
이런 경우 오류가 발생하면 허다한 시간만 소요하게 됩니다.  
저의 경험상 꼭 오타는 눈에 잘 보이지 않습니다.;;
소스코드가 길어질 수록 더욱 치명적입니다.
올리신 코드를 간단하게 작동 가능하게 정리하면 다음과 같이 정리할 수 있겠네요.

foo.sh

#!/bin/bash
echo "a"
read a
#echo "counter:"
#read b
echo "b"
read c
if [ $a -lt $c ] ; then
echo "A more than B"
else
num=`expr $a - $c`
fi
echo "result : $num"


보시는 바와같이, 간단한 뺄 셈 연산입니다.  (연산자 입력부분은 주석으로 빼놨습니다.)
에러가 발생한 이유는 변수명을 다시 확인 해보시고,
띄어쓰기를 정확히 사용하였는지 작성하신 코드와 비교해보세요. 

그리고 연산자를 지정하여 사용하는 방법은 말씀하신 대로 case문을 이용하시면 됩니다.

Case expression in
          pattern 1 ) command1;;
          pattern 2 ) command2;;
          *) default ;;
esac


참고적으로 Relational operators는 -eq, -ne, -gt, -lt, -le ..등이 있습니다. 

해피 리눅스!!

#################################################################

  1 #!/bin/bash
      2
      3 echo -n "_ : "
      4 read a
      5
      6 echo -n "연산자 : "
      7 read b
      8
      9 echo -n "_ : "
     10 read c
     11 if [ $a -lt $b ]; then
     12 echo "A값이 더 커야 합니다."
     13 else
     14 num = ` expr $a - $c `
     15 fi
     16 echo "값은 : $num"
~                                  

 

위의 내용을 임의 대로 만들었는데요 ㅡㅡ;; 문법이 틀린거 같습니다

원래 의도는 연산자도 입력받아서 내가 원하는 데로 할려고 했는데..

저건 case문을 해야할거 같구 ㅡㅡ;; 또 오류날려나 ;;

아무튼 14번줄이 오류가 나는데요.. `   ` 안에는 변수를 불러들이면서 계산은

할 수 없는건가요? a입력받은 값과 c를 입력받은 값을 계산할려고하는데

어떻게 해야하나욤?

또한 정말 궁금한게 더 있는데요. 만약에 12번줄이 충족되었을 경우

A 값이 더 커야 합니다.만 출력하고 프로그램을 빠져나가는 함수는 없을까요?

현재에는  A 값이 더 커야 합니다 라는 출력과 함께 밑에

                  값은 : <--- 이거까지 또 튀어나와요 ;; if문 구문에 집어넣어도 대겠지만

 그방법말고 또 빠져나가는 함수가 없을까 해서 질문을 드립니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,133 명
  • 현재 강좌수 :  36,170 개
  • 현재 접속자 :  424 명