expr

Autres langues

Langue: ko

Version: 100134 (fedora - 25/11/07)

Autres sections - même nom

Section: 1 (Commandes utilisateur)

이름

expr - 표현식 평가

개요

expr 표현식...
expr {--help,--version}

설명

이 맨페이지는 GNU 버전의 expr 을 다룬다. expr 표현식을 평가하고 그 결과값을 표준출력에 쓴다. 표현식의 각 표시는 별도의 인수로 주어져야 한다. 연산수(Operand)는 숫자 또는 문자열이다. 문자열은 쉘로부터 보호하기 위하여 인용부호로 둘러싸기(quote)가 필요할 모르지만 expr 에서는 그렇지 않다. expr 는 연산행위에 따라 연산수 위치에 있는 것을 정수 또는 문자열로 강제 변환한다.

연산자는 다음과 같다(우선 순위 증가순에 따라 나열):

|
첫번째 인수가 널 또는 0이 아니라면 첫번째 인수를 내주고 그렇지 않으면 두번째 인수를 내준다. `or' 연산에 해당한다.
&
첫번째 인수가 널 또는 0이 아니라면 첫번째 인수를 내주고 그렇지 않으면 0을 내준다.
<  <=  =  ==  !=  >=  >
주어진 인수를 비교하여 맞으면 1, 틀리면 0 을 반환한다. (===와 같다.) expr 은 양쪽 인수를 숫자로 변환하여 수치 비교를 한다; 한 쪽 변수라도 숫자 변환에 실패하면 사전식 비교를 수행한다.
+  -
수치 연산을 수행한다. 두 인수는 수치로 변환된다; 실패할 경우 에러가 발생한다.
*  /  %
수치 연산을 수행한다( `%'은 C 언어에서처럼 나머지 연산이다). 두 인수는 숫자로 변환된다; 실패할 경우 에러가 발생한다.
:
패턴 비교를 수행한다. 인수는 문자열로 변환되고 두번째 인수는 정규식으로 간주된다. 그리고 맨앞에 암묵적으로 `^' 을 추가한다. 첫번째 인수는 바로 이 정규식에 따라 비교된다. 비교가 성공하고 문자열의 일부가 `\(' 와 `\)'로 둘러싸여 있다면, 이 둘러싸인 부분이 : 표현식의 값이 된다. 아니면 비교에 성공한 문자의 갯수를 정수로 반환한다. 비교가 실패하면 : 연산자는 `\('와 `\)' 가 사용된 경우에는 널을 아니면 0 을 반환한다. `\(' 와 `\)' 의 쌍은 단 한 번만 사용할 수 있다.
추가로 다음 예약어를 사용할 수 있다:
match 문자열 정규식
패턴 비교를 할 수 있는 또 다른 방법이다. ``문자열 : 정규식'' 와 같다.
substr 문자열 위치 길이
문자열 중에서 위치로부터 최대 길이만큼의 문자열을 뽑아서 반환해준다. 만약 위치 또는 길이가 음수이거나 숫자가 아닐 때는 널 문자열을 반환한다.
index 문자열 문자-클래스
문자열에서 문자-클래스가 처음으로 나타나는 위치를 반환한다. 문자-클래스의 어떤 문자도 문자열에서 찾을 수 없는 경우 0 이 반환된다.
length 문자열
문자열의 길이를 반환한다.

괄호치기는 그룹묶기에 사용된다. 예약어는 문자열로 사용할 수 없다.

옵션

GNU expr 이 단 하나의 인수로 실행되면 다음 옵션이 인식된다:
--help
표준출력으로 사용법을 출력하고 정상적으로 종료한다.
--version
표준출력으로 버전정보를 출력하고 정상적으로 종료한다.

쉘 변수에 1 을 더하기 a:

a=`expr $a + 1`

다음은 변수 안에 저장된 화일명에서 디렉토리 이름부분을 출력하는 예이다. a ( a 라는 값은 `/'를 포함할 필요없다):

expr $a : '.*/\(.*\)' '|' $a

따옴표 처리한(quoted) 쉘의 메타문자를 주목하기 바란다.

expr 은 다음과 같은 종료 상태를 반환한다:

0 표현식이 널이거나 0이 아닐 때
1 표현식이 널이거나 0일 때
2 잘못된 표현식

번역자


이 만 용 <geoman@nownuri.nowcom.co.kr>
<freeyong@soback.kornet.nm.kr>