expr(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

expr(1)

expr(1)                          User Commands                         expr(1)

NAME
       expr - evaluate arguments as an expression

SYNOPSIS
       /usr/bin/expr argument...


       /usr/xpg4/bin/expr argument...


       /usr/xpg6/bin/expr argument...

DESCRIPTION
   /usr/bin/expr, /usr/xpg4/bin/expr
       The  expr  utility  evaluates  the  expression and writes the result to
       standard output. The character 0 is written to indicate  a  zero  value
       and nothing is written to indicate a null string.

   /usr/xpg6/bin/expr
       The  expr  utility  evaluates  the  expression and writes the result to
       standard output followed by a NEWLINE. If there is no result from  expr
       processing, a NEWLINE is written to standard output.

OPERANDS
       The  argument  operand  is evaluated as an expression. Terms of the ex‐
       pression must be separated by blanks. Characters special to  the  shell
       must be escaped (see sh(1)). Strings containing blanks or other special
       characters should be quoted. The length of the expression is limited to
       LINE_MAX (2048 characters).


       The  operators  and  keywords are listed below. The list is in order of
       increasing precedence, with equal precedence operators  grouped  within
       {} symbols. All of the operators are left-associative.

       expr | expr

           Returns  the evaluation of the first expr if it is neither NULL nor
           0; otherwise, returns the evaluation of the second expr  if  it  is
           not NULL; otherwise, 0.


       expr & expr

           Returns  the first expr if neither expr is NULL or 0, otherwise re‐
           turns 0.


       expr { =, >, >=, <, <=, != } expr

           Returns the result of an integer comparison if both  arguments  are
           integers, otherwise returns the result of a string comparison using
           the locale-specific coalition sequence. The result of each compari‐
           son  is 1 if the specified relationship is TRUE, 0 if the relation‐
           ship is FALSE.


       expr { +, − } expr

           Addition or subtraction of integer-valued arguments.


       expr { *, /, % } expr

           Multiplication, division, or remainder of the integer-valued  argu‐
           ments.


       expr : expr

           The  matching  operator  : (colon) compares the first argument with
           the second argument, which must be an internationalized basic regu‐
           lar expression (BRE), except that all patterns are anchored to  the
           beginning  of  the  string. That is, only sequences starting at the
           first character of a string are matched by the regular  expression.
           See regex(7) and NOTES. Normally, the /usr/bin/expr matching opera‐
           tor  returns the number of bytes matched and the /usr/xpg4/bin/expr
           and /usr/xpg6/bin/expr matching  operator  returns  the  number  of
           characters  matched (0 on failure). If the second argument contains
           at least one BRE sub-expression [\(...\)],  the  matching  operator
           returns the string corresponding to \1.


       integer

           An  argument  consisting only of an (optional) unary minus followed
           by digits.


       string

           A string argument that cannot be identified as an integer  argument
           or as one of the expression operator symbols.



       The following four operators: index, length, match, and substr, are all
       at the same precedence:

       index string character-list

           Report  the  first  byte in string (counting from one) where a byte
           from character-list matches a byte from  string.  If  no  bytes  in
           character-list appear in string, a 0 is returned.


       length string

           Return  the  length  (that  is, the number of bytes) of string. The
           terminating nul character is not included in that count.


       match string regular-expression

           Synonymous with the expr : expr matching operator.


       substr string integer-1 integer-2

           Extract the sequence of  bytes  from  string  (counting  from  one)
           starting  at  position  integer-1 and of length integer-2 bytes. If
           integer-1 has a value greater than the number of bytes  in  string,
           expr  returns  a null string. If you try to extract more bytes than
           there are in string, expr returns  all  the  remaining  bytes  from
           string. Results are unspecified if either integer-1 or integer-2 is
           a negative value.


EXAMPLES
       Example 1 Adding an integer to a shell variable



       Add 1 to the shell variable a:


         example$ a=`expr $a + 1`


       Example 2 Returning a path name segment



       The  following example emulates basename(1), returning the last segment
       of the path name $a. For $a equal to either /usr/abc/file or just file,
       the example returns file. (Watch out for / alone as an  argument:  expr
       takes it as the division operator. See NOTES below.)


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


       Example 3 Using // characters to simplify the expression



       Here  is  a better version of the previous example. The addition of the
       // characters eliminates any ambiguity about the division operator  and
       simplifies the whole expression.


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


   /usr/bin/expr
       Example 4 Returning the number of bytes in a variable


         example$ expr "$VAR" : '.*'


   /usr/xpg4/bin/expr
       Example 5 Returning the number of characters in a variable


         example$ expr "$VAR" : '.*'


ENVIRONMENT VARIABLES
       See  environ(7) for descriptions of the following environment variables
       that affect the execution of expr: LANG, LC_ALL, LC_COLLATE,  LC_CTYPE,
       LC_MESSAGES, and NLSPATH.

EXIT STATUS
       As a side effect of expression evaluation, expr returns one of the fol‐
       lowing exit values if no error occurred:

       0    If the expression is neither NULL nor 0.


       1    If the expression is either NULL or 0.



       If an error occurred, expr returns:

       2      For invalid expressions.


       > 2    An error other than an invalid expression occurred.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Availabilitysystem/core-os _ CSIEnabled. See Notes.   _
       Interface StabilitySee below.  _ StandardSee standards(7).



       The  match, substr, length, and index operators are Uncommitted. Every‐
       thing else is Committed.

SEE ALSO
       basename(1), echo(1),  ed(1),  sh(1),  Intro(3),  attributes(7),  envi‐
       ron(7), regex(7), standards(7)

DIAGNOSTICS
       syntax error            Operator and operand errors.


       non-numeric argument    Arithmetic is attempted on such a string.


NOTES
   Operators Not CSI-Enabled
       The  following  three  operators are not CSI enabled. They are also not
       available in /usr/xpg4/bin/expr and /usr/xpg6/bin/expr:

         index string character-list

         length string

         substr string integer-1 integer-2



       After argument processing by the shell, expr cannot tell the difference
       between an operator and an operand except by the value. If $a is an  =,
       the command:

         example$ expr $a = '='



       looks like:

         example$ expr = = =



       as  the  arguments  are passed to expr (and they are all taken as the =
       operator). The following works:

         example$ expr X$a = X=


   Regular Expressions
       Unlike some previous versions, expr uses Internationalized Basic  Regu‐
       lar Expressions for all system-provided locales. Internationalized Reg‐
       ular Expressions are explained on the regex(7) manual page.

   Operator Precedence Order in Other Versions
       In previous releases of Solaris, there was a /usr/ucb/expr command that
       had  a  different  operator  precedence order than the expr command de‐
       scribed here. Also, the /usr/gnu/bin/expr command has  its  own  unique
       operator precedence order.

Oracle Solaris 11.4               29 Nov 2022                          expr(1)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3