Linux expr 명령 상세 설명

7177 단어 linux
expr 명령
용도.
표현 식 변수의 값 을 구하 십시오.
문법
expr Expression
묘사 하 다.
expr 명령 은 Expression 인 자 를 읽 고 값 을 계산 한 다음 결 과 를 표준 출력 에 기록 합 니 다.
Expression 매개 변수 에 다음 규칙 을 적용 해 야 합 니 다:
  • 각 항목 을 빈 칸 으로 분리 한다.
  • 셸 의 특정한 문자 앞 에/(역 슬 래 쉬) 를 사용 합 니 다.
  • 빈 칸 과 다른 특수 문 자 를 포함 하 는 문자열 을 따옴표 로 묶 어야 합 니 다.

  • 정수 앞 에 일원 연 자 를 놓 을 수 있다.내부 에 서 는 정수 가 32 비트, 쌍 상호 보완 수로 여 겨 진다.
    주: expr 명령 은 빈 문자열 이 아 닌 0 값 을 표시 하기 위해 0 을 되 돌려 줍 니 다.
    다음 항목 은 Expression 매개 변수의 연산 자 와 키 워드 를 설명 합 니 다.전의 가 필요 한 문 자 는 하나/(역 슬 래 쉬) 로 앞 에 놓 여 있 습 니 다.이 항목 들 은 우선권 이 증가 하 는 순서에 따라 열거 되 며, 같은 우선권 을 가 진 연산 자 는 {} (대괄호) 에 묶 여 있 습 니 다.
    Expression1 /| Expression2
    Expression 1 을 되 돌려 줍 니 다. 빈 값 이나 0 값 이 아니라면 Expression 2 를 되 돌려 줍 니 다.
    Expression1 /& Expression2
    Expression 1 을 되 돌려 줍 니 다. 두 표현 식 이 모두 빈 값 이나 0 값 이 아니라면 0 값 을 되 돌려 줍 니 다.
    Expression1 { =,/>,/>=,/ Expression2
    두 표현 식 이 모두 정수 라면 정수 비교 결 과 를 되 돌려 줍 니 다. 그렇지 않 으 면 문자열 비교 결 과 를 되 돌려 줍 니 다.
    Expression1 {+, - } Expression2
    정수 변수의 더하기 또는 감소.
    Expression1 {/*,/, % } Expression2
    정수 변수의 곱 하기, 나 누 기 또는 나눗셈 의 나머지 를 제공 합 니 다.
    Expression1 : Expression2
    Expression 1 의 연산 에서 얻 은 문자열 과 Expression 2 의 연산 결과 의 정규 표현 식 모드 를 비교 합 니 다. 정규 표현 식 문법 은 ed 명령 과 같 습 니 다. 모든 패턴 을 문자열 의 시작 에 고정 시 키 는 것 을 제외 하고 (즉, 문자열 의 첫 글자 로 시작 하 는 시퀀스 만 정규 표현 식 과 일치 합 니 다). 따라서 ^ (기호 삽입)이 경우 특수 문자 가 아 닙 니 다. 일반적으로 연산 자 와 일치 하 는 문자 갯 수 를 되 돌려 줍 니 다 (실패 할 때 0 으로 되 돌려 줍 니 다). 패턴 에 키 표현 식 이 포함 되 어 있다 면:
    /( Expression /)
    
    실제 일치 하 는 문 자 를 포함 하 는 문자열 을 되 돌려 줍 니 다. 정리 순 서 는 문자 범위 내 에서 사용 되 는 등가 류 를 정의 할 수 있 습 니 다. 정리 순서 와 등가 류 에 대한 더 많은 정 보 는 'AIX V 6.1 로 컬 언어 지원 지침 및 참조 대전' 의 '언어 환경 변 수 를 알 아 보기' 를 참조 하 십시오.
    주: 다음 문자열 변 수 는 표준 을 초과 할 수 있 습 니 다. 행동 은 운영 체제 에 따라 다 를 수 있 습 니 다. 이 문자열 변 수 는 '아니오' 로 이식 할 수 있 습 니 다.
    match String1 String2
    Expression 1: Expression 2 와 같 습 니 다.
    length String1
    String 1 의 길 이 를 되 돌려 줍 니 다.
    index String1 String2
    String 1 에 String 2 의 임의의 문 자 를 포함 하 는 첫 번 째 위 치 를 되 돌려 줍 니 다.
    substr String1 StartPosition Length
                             
    StartPosition 의 문자 로 시 작 된 String 1 의 문자열 과 Length 길이 의 문자열 을 되 돌려 줍 니 다.
    종료 상태
    이 명령 은 다음 종료 값 을 되 돌려 줍 니 다:
    0
    Expression 매개 변수 연산 값 은 비어 있 지도 않 고 0 도 아 닙 니 다.
    1
    Expression 매개 변수의 계산 값 은 비어 있 거나 0 입 니 다.
    2
    Expression 인자 가 잘못 되 었 습 니 다.
    >2
    오류 가 발생 하 다.
    주: 셸 에서 파 라 메 터 를 처리 한 후 expr 명령 은 수 치 를 이용 하 는 것 외 에 연산 자 와 조작 수 를 구분 할 수 없습니다. 따라서 $a 의 값 이 j 라면 명령:
    expr $a = j
    

    마치:
    expr j = j
    

    셸 에서 모든 인 자 를 expr 명령 에 전달 한 후 다음 상황 도 true 입 니 다.
    expr X$a = Xj
    

    예시
  • 셸 변 수 를 수정 하려 면 입력 하 십시오.
    COUNT=`expr $COUNT + 1`
    
    셸 변수 $COUNT 에 1 을 추가 합 니 다. expr 명령 은 grave accent 로 포장 되 어 있 으 며, 이 로 인해 셸 은 expr 명령 의 표준 출력 을 COUNT = 명령 의 표준 출력 으로 대체 합 니 다. $COUNT 변 수 를 사용 하기 전에 초기 화해 야 합 니 다.
  • $STR 셸 변수의 길 이 를 얻 으 려 면:
    LENGTH=`expr $STR : ".*"`
    
    을 입력 하 십시오. 이것 은 LENGTH 변 수 를: (콜론) 연산 자가 주 는 값 으로 설정 합 니 다. * (점, 별표)패턴 은 모든 문자열 을 처음부터 끝까지 일치 시 킵 니 다. 따라서 콜론 연산 자 는 $STR 변수의 길 이 를 문자 와 일치 하 는 숫자 로 표시 합 니 다. 주, * 는 따옴표 안에 있어 야 합 니 다. 셸 이 * (별표) 를 패턴 과 일치 하 는 문자 로 처리 하 는 것 을 방지 해 야 합 니 다. 따옴표 는 패턴 의 일부분 이 아 닙 니 다. 예 를 들 어 $STR 변 수 를 빈 문자열 로 설정 하거나 빈 칸 을 포함 합 니 다.(공백 이나 탭 키) 이 명령 은 오류 메 시 지 를 표시 합 니 다 expr: syntax error. 셸 은 보통 빈 문자열 을 명령 에 전달 하지 않 기 때 문 입 니 다. 이 경우 expr 명령 은 다음 과 같이 만 볼 수 있 습 니 다.
    :.*
    
    셸 은 하나의 따옴표 도 제거 합 니 다. 작 동 하지 않 는 이 유 는 콜론 연산 자가 두 개의 값 을 요구 하기 때 문 입 니 다. 이 문 제 는 셸 변 수 를 두 따옴표 로 묶 어서 해결 할 수 있 습 니 다.
    LENGTH=`expr "$STR" : ".*"`
    
    현재 $STR 변수의 값 이 비어 있 으 면 LENGTH 변 수 는 0 값 으로 설 정 됩 니 다. 보통 셸 변 수 를 작은 따옴표 로 묶 는 것 을 추천 합 니 다. 셸 변 수 를 작은 따옴표 로 묶 지 마 십시오.
  • 문자열 의 일부분 을 사용 하려 면 입력 하 십시오.
    FLAG=`expr "$FLAG" : "-*/(.*/)"`
    
    $FLAG 셸 변수 앞 에 연결 문자 가 있 으 면 연결 문 자 를 제거 합 니 다. 콜론 연산 자 는 FLAG 변수의 일부분 을 보 여 줍 니 다. 이 변 수 는/( /) 문자 (역 슬 래 쉬, 괄호 와 역 슬 래 쉬, 괄호 닫 기) 의 중간 부분 표현 식 과 일치 합 니 다. 무시 하면/( 화해시키다 /) 하위 표현 식 문자 의 경우, 콜론 연산 자 는 일치 하 는 문자 수 를 표시 합 니 다. $FLAG 변수 가 - (하이픈) 로 설정 되 어 있 으 면 이 명령 은 문법 오류 메 시 지 를 표시 합 니 다. 이것 은 셸 이 $FLAG 변수의 값 을 바 꾸 기 때 문 입 니 다. expr 명령 을 실행 하기 전에 expr 명령 은 하이픈 이 변수의 값 인지 알 수 없습니다.
    - : -*/(.*/)
    
    또한 첫 번 째 연결 문 자 를 감호 연산 자로 해석 합 니 다. 이 문 제 를 없 애 려 면 다음 을 사용 하 십시오.
    FLAG=`expr "x$FLAG" : "x-*/(.*/)"`
    
  • expr 명령 을 if 구문 에 사용 하려 면 입력 하 십시오:
    if expr "$ANSWER" : "[yY]" >/dev/null
    那么返回 ANSWER 以 "y" 或 "Y" 开始fi
    $ANSWER 변수 가 y 또는 Y 로 시작 하면 if 문장의 then 부분 이 실 행 됩 니 다. 성공 적 인 표현 식 과 일치 하 는 결과 가 1 이 고 expr 명령 은 0 의 출구 값 을 되 돌려 줍 니 다. 이 출구 값 은 if 구문 에서 논리 값 True 로 인식 되 며 일치 하지 않 으 면 0, 출구 값 은 1 입 니 다. expr 명령 의 표준 출력 을/dev/null 로 다시 지정 합 니 다.특수 파일 입 니 다. 이 표현 식 의 결 과 를 폐기 합 니 다. 다시 설정 하지 않 으 면 표준 출력 에 기 록 됩 니 다. 보통 워크스테이션 모니터 입 니 다.
  • 다음 표현 식 을 고려 합 니 다.
    expr "$STR" = "="
    
    $STR 변수 가 = (등호) 이면 셸 에서 이 명령 을 처리 한 후에 expr 명령 은 표현 식 을 볼 수 있 습 니 다.
    = = =
    
    expr 명령 은 이 를 한 줄 에 있 는 세 개의 등호 연산 자로 해석 하고 문법 오류 메 시 지 를 표시 합 니 다. 셸 변수의 값 이 expr 연산 자 중 하나 와 같 으 면 발생 합 니 다. 이 문 제 를 피 하 는 방법 은 이 표현 식 을 다음 과 같이 쓰 는 것 입 니 다.
    expr "x$STR" = "x="
    
  • $SHELL 환경 변수/usr/bin/ksh 의 길 이 를 되 돌려 주 려 면 입력 하 십시오:
    expr length $SHELL
    
    다음 내용 을 표시 합 니 다.
    12
    
  • "de"문자열 의 모든 문자 가 "abcdef"에 나타 난 첫 번 째 위 치 를 되 돌려 주 려 면 입력 하 십시오.
    expr index abcdef de
    
    다음 내용 을 표시 합 니 다.
    4
    
  • "fd"문자열 의 모든 문자 가 "abcdef"에 나타 난 첫 번 째 위 치 를 되 돌려 주 려 면 다음 과 같은 내용 을 입력 하 십시오.
    expr index abcdef fd
    
  • "Goodnight Ladies"문자열 에서 위치 11 부터 시작 하 는 6 글자 길이 의 문자열 을 되 돌려 주 려 면 다음 내용 을 입력 하 십시오.
    4
    
  • 문건
    /usr/bin/expr
    expr 명령 이 포함 되 어 있 습 니 다.

    좋은 웹페이지 즐겨찾기