1. expr 명령은 일반적으로 정수 값에 사용됩니다. 일반적인 형식은 다음과 같습니다.
expr 인수 연산자 인수
일반적인 사용법은 expr을 사용하여 다음과 같은 산술 연산을 수행하는 것입니다. @centos ~]# expr 10 + 20
30
$expr 30 / 3 / 2
5
(연산자 주위에 공백이 있다는 점에 유의하세요. 공백이 없으면 문자열 연결을 의미합니다. )
곱하기 기호를 사용할 때 특정 의미는 백슬래시로 가려야 합니다. 쉘이 별표의 의미를 오해할 수 있기 때문입니다. 예:
[root@centos ~]# expr 10 * 10 //: 오류,
expr: 구문 오류
[root@centos ~]# expr 10 * 10 // 정확함
100
2. 판단을 위해 expr을 사용하여 출력을 /dev/null로 가져옵니다.
표현식이 성공하면 다음과 같이 표현할 수 있습니다:
$value=12
$expr $value + 10 > /dev/null 2>&1
$echo $?
0
식이 실패하면 0이 아닌 값을 반환합니다
$value=hello
$expr $value + 10 > /dev/null 2>&1
$echo $ ?
2
3.expr은 문자열
문자열 비교에서도 작동합니다.
expr은 성공하면 값 1을 반환하고, 다른 값은 유효하지 않거나 오류입니다. 예를 들어 다음 예에서는 문자열이 "hello"와 hello"인 경우 두 문자열이 동일한지 테스트합니다.
$value=hello
$expr $value = "hello"
1
# 셸의 반환 값이 0인 경우.
$echo $?
0
4. expr 패턴 매칭:
expr 패턴 매칭에 대해서는 expr을 사용하여 수행할 문자열을 지정하면 됩니다. 콜론: 옵션. .*는 0번 이상 반복되는 모든
문자를 나타냅니다. 반환 값은 괄호 안의 내용입니다. 예를 들어 tomcat의 catalina.sh에서는 expr 패턴 일치를 사용합니다. 실제 연결 파일 경로, 예는 다음과 같습니다.
# 링크 확인 - $0은 소프트링크일 수 있습니다
PRG="$0"
while [ -h "$PRG" ]; =`ls -ld "$ PRG"`
link=`expr "$ls" : '.*-> .*$'` # 여기서 expr의 반환 값은 연결된 파일의 실제 경로입니다
if expr "$link" : '/ .*' > /dev/null; then #경로 이름은 1을 반환합니다
PRG="$link"
else
PRG=`dirname "$PRG" `/"$link"
fi
완료