Contents

System/OS
2014.03.11 11:12

[linux] 쉘스크립트 expr

조회 수 15697 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
쉘스크립트에서 변수에 대입된 값은 모두 문자열로 취급된다.
변수에 들어 있는 값을 숫자 형태로 사칙연산(+, -, *, /)을 하려면 expr 을 사용하면 된다.
이 때, 수식을 반드시 역따옴표(키보드 숫자 1 왼쪽 옆에 있는 ` 기호)로 묶어 주어야 한다.
수식에 괄호를 넣으려면 그 앞에 꼭 역슬래시(\)를 붙여 주어야 한다.
또한, +, -, / 와 달리 곱하기(*) 연산도 앞에 꼭 역슬래시(\)를 붙여 주어야 한다.
자.. 그럼 더 긴 설명은 제끼고 한번 해보자~

# 사용법
expr 수식 expr 옵션

다음은 expr 에서 지원하는 수식평가 포맷이다.
결과는 표준출력(:12) 된다.
# 양쪽 모두 0이면 0이 리턴된다.
ARG1 | ARG2

# 어느 한쪽이 0이면 0이 리턴된다. 그렇지 않다면 ARG1이 리턴
ARG1 & ARG2

# ARG1이 ARG2 보다 작으면 1, 그렇지 않다면 0
ARG1 < ARG2

# ARG1이 ARG2 보다 작거나 같으면 1, 그렇지 않다면 0
ARG1 <= ARG2

# ARG1과 ARG2 가 같으면 1, 그렇지 않다면 0
ARG1 = ARG2

# ARG1와 ARG2가 같으면 0, 다르면 1
ARG1 != ARG2

# ARG1이 ARG2 보다 크면 1, 그렇지 않다면 0
ARG1 > ARG2

# ARG1이 ARG2 보다 크거나 같다면 1, 그렇지 않다면 0
ARG1 >= ARG2

# ARG1과 ARG2를 더한다.
ARG1 + ARG2

# ARG1에서 ARG2를 뺀다.
ARG1 - ARG2

# ARG1와 ARG2를 곱한다.
ARG1 * ARG2

# ARG1을 ARG2로 나눈다.
ARG1 / ARG2

# ARG1을 ARG2로 나눈 나머지
ARG1 % ARG2

# CHARS가 STRING의 몇번째 위치에 있는지를 확인
index STRING CHARS

# STRING의 길이
length STRING

# STRING이 정규표현(:12) REGEXP를 만족하면 1
match STRING REGEXP

# 사용 예제
# expr 2 \= 2
# expr match "hello World 1234" "[a-zA-Z0-9]"
# expr index "hello World 1234" W
# expr length "hello world 1234"


다음은 쉘스크립트(:12)에서 사용한 예이다.

#!/bin/sh

INDEX=1
while [ $INDEX -lt 100 ]
do
        echo $INDEX;
        INDEX=`expr $INDEX \+ 1`
done

# expr 연산기호
+ : 더하기
- : 빼기
* : 곱하기('\*'로 사용)
/ : 나누기를 한 후의 몫의 값
% : 나누기를 한 후의 나머지 값

# 연산기호 사용 예제
#!/bin/sh

# 주의사항
# 1. 역따옴표(``)를 사용한다.
# 2. *연산자와 괄호'()' 앞에는 \(역슬래시)를 붙인다.
# 3. 모든 연산자와 숫자, 변수, 기호 사이네는 space가 있어야 한다.
# 4. = 사이에는 space가 있으면 안된다.

num=`expr 3 + 4 - 5`
echo $num
num2=`expr \( 3 \* 5 \) / 4 + 7`
echo $num2

#"$$"는 스크립트 파일이 실행되는 프로세스 번호를 나타낸다.
A=linux
echo "1. \$A 의 값은 $A이다."
echo "2. \$A 의 값은 $$A이다."
echo "3. \$A 의 값은 $$$A이다."
echo "4. \$A 의 값은 '$A'이다."
echo "5. \$A 의 값은 "$A"이다."


?

  1. iOS 에서 쓸만한 오프라인 구글지도 찾기

    Date2014.01.06 CategoryEtc Byhooni Views16083
    Read More
  2. [doc] 웜 프레임워크 검증환경 구축(작성중..)

    Date2013.04.23 CategoryEtc Byhooni Views16042
    Read More
  3. 티스토리 테이블 html,css 구문

    Date2013.11.03 CategoryEtc Byhooni Views16035
    Read More
  4. 여기저기서 모은 VoIP(인터넷전화) 자료들~

    Date2013.04.23 CategoryEtc Byhooni Views16002
    Read More
  5. [owasp] 10대 웹어플리케이션 보안 취약

    Date2013.04.23 CategorySystem/OS Byhooni Views15979
    Read More
  6. [ppt] 웜 과제 진행사항(프레임워크 검증환경 구축) 보고

    Date2013.04.23 CategoryPPT Byhooni Views15922
    Read More
  7. 라우팅 경로 결정 영향 요소 ㅋㅋ

    Date2013.04.23 CategorySystem/OS Byhooni Views15913
    Read More
  8. [ios] APNS 클라이언트 구현 (pdf)

    Date2013.06.27 CategoryDevelop Byhooni Views15780
    Read More
  9. OGNL(Object Graph Navigation Language)

    Date2013.04.23 CategoryDevelop Byhooni Views15768
    Read More
  10. 영어의 12 시제 (The twelve tenses of English)

    Date2013.07.12 CategoryEtc Byhooni Views15763
    Read More
  11. [router] 설정과 기본 명령어들 모음

    Date2013.04.23 CategorySystem/OS Byhooni Views15741
    Read More
  12. [linux] 쉘스크립트 expr

    Date2014.03.11 CategorySystem/OS Byhooni Views15697
    Read More
Board Pagination Prev 1 ... 17 18 19 20 21 22 23 24 25 26 ... 98 Next
/ 98