728x90
반응형
expr
명령어는 Bash에서 수치 연산이나 문자열 처리, 조건 비교 등을 간단히 수행할 수 있게 도와주는 유틸리티입니다. 특히 POSIX 호환성을 유지하면서도 복잡하지 않은 작업을 쉘 스크립트 내에서 간편하게 처리할 수 있어 여전히 많이 사용됩니다. 이 글에서는 expr
명령어의 역할, 사용법, 옵션, 다양한 예제 등을 통해 이 명령어를 효과적으로 활용하는 방법을 소개합니다.
expr 명령어의 역할
expr
은 문자열이나 숫자 값을 평가하여 그 결과를 출력하는 명령어입니다. 주로 다음과 같은 역할을 수행합니다:
- 산술 연산
- 문자열 길이 측정
- 문자열 추출
- 문자열 비교
- 논리 연산
Bash 자체의 (( ))
, $(( ))
구문에 비해 다소 구식처럼 보일 수 있지만, POSIX 환경이나 오래된 스크립트 호환성 유지가 필요한 경우 유용합니다.
expr 기본 사용법
expr [피연산자1] [연산자] [피연산자2]
공백을 반드시 띄워야 하며, 괄호는 쉘이 해석하지 않도록 백슬래시로 이스케이프하거나 큰따옴표로 감싸야 합니다.
주요 기능 및 예제
산술 연산
덧셈 (+)
- 역할: 두 숫자의 합을 계산
- 사용법:
expr 3 + 2
- 결과:
5
뺄셈 (-)
- 역할: 첫 숫자에서 두 번째 숫자를 뺌
- 사용법:
expr 7 - 4
- 결과:
3
곱셈 (*)
- 역할: 두 수를 곱함 (이스케이프 필요)
- 사용법:
expr 5 \* 2
- 결과:
10
나눗셈 (/)
- 역할: 첫 번째 수를 두 번째 수로 나눔
- 사용법:
expr 10 / 2
- 결과:
5
나머지 (%)
- 역할: 첫 수를 두 번째 수로 나눈 나머지
- 사용법:
expr 10 % 3
- 결과:
1
비교 연산
같음 (=)
- 역할: 두 문자열이 같은지 비교
- 사용법:
expr "hello" = "hello"
- 결과:
1
(같음),0
(다름)
다름 (!=)
- 역할: 두 문자열이 다른지 확인
- 사용법:
expr "foo" != "bar"
- 결과:
1
대소 비교 (<, >)
- 역할: 문자열의 사전적 순서 비교 (이스케이프 필요)
- 사용법:
expr "abc" \< "def"
- 결과:
1
논리 연산
AND (&)
- 역할: 두 조건이 모두 참인지 확인
- 사용법:
expr 1 \& 1
- 결과:
1
OR (|)
- 역할: 두 조건 중 하나라도 참인지 확인
- 사용법:
expr 0 \| 1
- 결과:
1
문자열 처리
길이 측정 (length)
- 역할: 문자열 길이를 구함
- 사용법:
expr length "hello"
- 결과:
5
부분 문자열 추출 (substr)
- 역할: 지정된 위치부터 특정 길이만큼 문자열을 추출
- 사용법:
expr substr "abcdef" 2 3
- 결과:
bcd
문자열 위치 (index)
- 역할: 문자열 내에서 지정 문자가 처음 나타나는 위치
- 사용법:
expr index "abcdef" "d"
- 결과:
4
실제 사용 예제
#!/bin/bash
A=10
B=5
SUM=$(expr $A + $B)
PROD=$(expr $A \* $B)
LENGTH=$(expr length "HelloWorld")
PART=$(expr substr "abcdefg" 3 4)
echo "합계: $SUM"
echo "곱: $PROD"
echo "문자열 길이: $LENGTH"
echo "부분 문자열: $PART"
결과:
- 합계: 15
- 곱: 50
- 문자열 길이: 10
- 부분 문자열: cdef
expr
명령어는 간단하지만 다양한 기능을 제공하며, 특히 POSIX 표준을 따라야 하는 환경에서 그 유용성이 높습니다. 다만 복잡한 연산에는 let
, (( ))
, awk
등을 고려하는 것이 좋습니다. 그러나 기본적인 연산이나 문자열 처리가 필요한 경우에는 여전히 유용한 도구입니다.
728x90
반응형
'개발 > Bash 쉘스크립트' 카테고리의 다른 글
[Bash] 리눅스 쉘 스크립트 sed: 기본 사용 법 및 옵션 까지 모두 정리 (2) | 2025.05.05 |
---|---|
[Bash] 리눅스 쉘 스크립트: printf 기본 사용 법 및 옵션 까지 모두 정리 (2) | 2025.05.05 |
[Bash] 리눅스 쉘 스크립트: set 기본 사용 법 및 옵션 까지 모두 정리 (1) | 2025.05.05 |
[Bash] 리눅스 쉘 스크립트: echo 기본 사용 법 및 옵션 까지 모두 정리 (4) | 2025.05.04 |
[Bash] 리눅스 쉘 스크립트: read 기본 사용 법 및 옵션 까지 모두 정리 (2) | 2025.05.04 |