Oz and Mozart Hackers Mailing List

Re: 1.2.5 has been tagged in CVS and download site is being updated


From: Valentin Mesaros (valentin@info.ucl.ac.be)
Date: Thu Jan 30 2003 - 13:03:22 CET


Denys Duchier wrote:
>
> Hi Valentin,
> thanks for trying it out.
>
> > checking c++ version is at least 2.7...
> > /pirates/staff2/valentin/mozart-1.2.5.20030129/platform/emulator/configure:
> > test: unknown operator lt
>
> I think that you may have a broken version of test. You know that in order
> to build mozart from source, you need a reasonable complement of GNU
> tools. What is this test that you are using? Perhaps it is built
> into the shell, in which case which sh are you using? In any case,
> could you also look up (and maybe send me) the man page for test.

I don't understant why the tools I use don't work with the sources of
mozart-1.2.5. Actually I have no problem compiling the sources found in
the development branch, from the cvs.
Anyway, I attach you the man for test that I have.
 
> In any case, I highly recommend grabbing and installing the GNU
> shellutils. If you configure with --prefix=$HOME they will just
> install into your home directory instead of /usr/local. Also get GNU
> make if you don't already have it.

Ok, I'll take them!

Valentin

User Commands if(1)

NAME
     if, test - evaluate condition(s) or make execution of
     actions dependent upon the evaluation of condition(s)

SYNOPSIS
     /usr/bin/test [ _c_o_n_d_i_t_i_o_n ]

     _c_o_n_d_i_t_i_o_n

  sh
     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; fi

     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; else _a_c_t_i_o_n_2 ; fi

     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; elif _c_o_n_d_i_t_i_o_n_2 ; then _a_c_t_i_o_n_2
     ; ... ; fi

     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; elif _c_o_n_d_i_t_i_o_n_2 ; then _a_c_t_i_o_n_2
     ; ... ; else _a_c_t_i_o_n_3 ; fi

     test _c_o_n_d_i_t_i_o_n

      [ _c_o_n_d_i_t_i_o_n ]

  csh
     if ( _c_o_n_d_i_t_i_o_n ) then

     _a_c_t_i_o_n

     else if ( _c_o_n_d_i_t_i_o_n_2 ) then

     _a_c_t_i_o_n_2

     else

     _a_c_t_i_o_n_3

     endif

     if ( _c_o_n_d_i_t_i_o_n ) [ _a_c_t_i_o_n ]

  ksh
     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; fi

     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; else _a_c_t_i_o_n_2 ; fi

     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; elif _c_o_n_d_i_t_i_o_n_2 ; then _a_c_t_i_o_n_2
     ; ... ; fi

     if _c_o_n_d_i_t_i_o_n ; then _a_c_t_i_o_n ; elif _c_o_n_d_i_t_i_o_n_2 ; then _a_c_t_i_o_n_2
     ; ... ; else _a_c_t_i_o_n_3 ; fi

SunOS 5.7 Last change: 13 Dec 1996 1

User Commands if(1)

     test _c_o_n_d_i_t_i_o_n

      [ _c_o_n_d_i_t_i_o_n ]

DESCRIPTION
  /usr/bin/test
     The test utility evaluates the _c_o_n_d_i_t_i_o_n and indicates the
     result of the evaluation by its exit status. An exit status
     of zero indicates that the condition evaluated as true and
     an exit status of 1 indicates that the condition evaluated
     as false.

     In the second form of the utility, which uses [] rather than
     test , the square brackets must be separate arguments and
     _c_o_n_d_i_t_i_o_n is optional.

     See largefile(5) for the description of the behavior of test
     when encountering files greater than or equal to 2 Gbyte ( 2
    **31 bytes).

  sh
     The _c_o_n_d_i_t_i_o_n following if is executed and, if it returns a
     0 exit status, the _a_c_t_i_o_n following the first then is exe-
     cuted. Otherwise, the _c_o_n_d_i_t_i_o_n_2 following elif is executed
     and, if its value is 0, the _a_c_t_i_o_n_2 following the next then
     is executed. Failing the if and elif _c_o_n_d_i_t_i_o_ns, the else
     _a_c_t_i_o_n_3 is executed. If no else _a_c_t_i_o_n or then _a_c_t_i_o_n is
     executed, the if command returns a 0 exit status. Any
     number of elif ... then ... branching pairs are allowed,
     but only one else.

     test evaluates the condition _c_o_n_d_i_t_i_o_n and, if its value is
     true, sets exit status to 0; otherwise, a non-zero (false)
     exit status is set; test also sets a non-zero exit status
     if there are no arguments. When permissions are tested, the
     effective user ID of the process is used.

     All operators, flags, and brackets (brackets used as shown
     in the second SYNOPSIS line) must be separate arguments to
     the test command; normally these items are separated by
     spaces.

  Primitives:
     The following primitives are used to construct _c_o_n_d_i_t_i_o_n:

     -r _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is readable.

     -w _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is writable.

     -x _f_i_l_e_n_a_m_e

SunOS 5.7 Last change: 13 Dec 1996 2

User Commands if(1)

               True if _f_i_l_e_n_a_m_e exists and is executable.

     -f _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is a regular file.
               Alternatively, if /usr/bin/sh users specify
               /usr/ucb before /usr/bin in their PATH environment
               variable, then test will return true if _f_i_l_e_n_a_m_e
               exists and is (not-a-directory). This is also the
               default for /usr/bin/csh users.

     -d _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is a directory.

     -h _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is a symbolic link.
               With all other primitives (except -L _f_i_l_e_n_a_m_e),
               the symbolic links are followed by default.

     -c _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is a character special
               file.

     -b _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is a block special
               file.

     -p _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is a named pipe
               (fifo).

     -u _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and its set-user- ID bit
               is set.

     -g _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and its set-group- ID bit
               is set.

     -k _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and its sticky bit is set.

     -s _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and has a size greater
               than zero.

     -t [ _f_i_l_d_e_s ]
               True if the open file whose file descriptor number
               is _f_i_l_d_e_s (1 by default) is associated with a ter-
               minal device.

     -z _s_1 True if the length of string _s_1 is zero.

SunOS 5.7 Last change: 13 Dec 1996 3

User Commands if(1)

     -n _s_1 True if the length of the string _s_1 is non-zero.

     _s_1 = _s_2 True if strings _s_1 and _s_2 are identical.

     _s_1 != _s_2 True if strings _s_1 and _s_2 are not identical.

     _s_1 True if _s_1 is not the null string.

     _n_1 -eq _n_2 True if the integers _n_1 and _n_2 are algebraically
               equal.

     _n_1 -ne _n_2 True if the integers _n_1 and _n_2 are not algebrai-
               cally equal.

     _n_1 -gt _n_2 True if the integer _n_1 is algebraically greater
               than the integer _n_2.

     _n_1 -ge _n_2 True if the integer _n_1 is algebraically greater
               than or equal to the integer _n_2.

     _n_1 -lt _n_2 True if the integer _n_1 is algebraically less than
               the integer _n_2.

     _n_1 -le _n_2 True if the integer _n_1 is algebraically less than
               or equal to the integer _n_2.

     -L _f_i_l_e_n_a_m_e
               True if _f_i_l_e_n_a_m_e exists and is a symbolic link.
               With all other primitives (except -h _f_i_l_e_n_a_m_e),
               the symbolic links are followed by default.

  Operators:
     These primaries may be combined with the following opera-
     tors:

     ! Unary negation operator.

     -a Binary _a_n_d operator.

     -o Binary _o_r operator (-a has higher precedence than
               -o).

     (_c_o_n_d_i_t_i_o_n)
               Parentheses for grouping. Notice also that
               parentheses are meaningful to the shell and,
               therefore, must be quoted.

     The not-a-directory alternative to the -f option is a tran-
     sition aid for BSD applications and may not be supported in
     future releases.

SunOS 5.7 Last change: 13 Dec 1996 4

User Commands if(1)

     The -L option is a migration aid for users of other shells
     which have similar options and may not be supported in
     future releases.

     If you test a file you own (the -r -w or -x tests), but the
     permission tested does not have the _o_w_n_e_r bit set, a non-
     zero (false) exit status will be returned even though the
     file may have the group or _o_t_h_e_r bit set for that permis-
     sion. The correct exit status will be set if you are super-
     user.

     The = and != operators have a higher precedence than the -r
     through -n operators, and = and != always expect arguments;
     therefore, = and != cannot be used with the -r through -n
     operators.

     If more than one argument follows the -r through -n opera-
     tors, only the first argument is examined; the others are
     ignored, unless a -a or a -o is the second argument.

  csh
     With the multi-line form of if :
               if _c_o_n_d_i_t_i_o_n is true, the _a_c_t_i_o_n up to the first
               else or then is executed. Otherwise, if else if
               _c_o_n_d_i_t_i_o_n_2 is true, the _a_c_t_i_o_n_2 between the else
               if and the following else or then is executed.
               Otherwise, the _a_c_t_i_o_n_3 between the else and the
               endif is executed.

               The if must appear alone on its input line or
               after an else. Only one endif is needed, but it is
               required. The words else and endif must be the
               first nonwhite characters on a line. Any number of
               else if ... then ... branching pairs are allowed,
               but only one else.

keywords:
     With the one-
               line form of if , there are no else, then, or endif
               if the specified _c_o_n_d_i_t_i_o_n evaluates to true, the
               single _a_c_t_i_o_n with arguments is executed. Variable
               substitution on _a_c_t_i_o_n happens early, at the same
               time it does for the rest of the if command.
               _a_c_t_i_o_n must be a simple command, not a pipeline, a
               command list, or a parenthesized command list.
               Note that I/O redirection occurs even if _c_o_n_d_i_t_i_o_n
               is false, when _a_c_t_i_o_n is not executed (this is a
               bug).

  ksh
     The _c_o_n_d_i_t_i_o_n following if is executed and, if it returns
     an exit status of 0, the _a_c_t_i_o_n following the first then is

SunOS 5.7 Last change: 13 Dec 1996 5

User Commands if(1)

     executed. Otherwise, the _c_o_n_d_i_t_i_o_n_2 following elif is exe-
     cuted and, if its value is 0, the _a_c_t_i_o_n_2 following the next
     then is executed. Failing that, the else _a_c_t_i_o_n_3 is exe-
     cuted. If no else _a_c_t_i_o_n or then _a_c_t_i_o_n is executed, then
     the if command returns an exit status of 0. Any number of
     elif ... then ... branching pairs are allowed, but only one
     else.

     For a description of the test built-in, see the ksh(1) sec-
     tions Conditional Expressions and Arithmetic Evaluation as
     well as the (sh ) Bourne shell's test built-in above.

     [ _c_o_n_d_i_t_i_o_n ] evaluates file attributes, string comparisons,
     and compound "and" or "or" _c_o_n_d_i_t_i_o_ns.

OPERANDS
     All operators and elements of primaries must be presented as
     separate arguments to the test utility.

     The following primaries can be used to construct _c_o_n_d_i_t_i_o_n:

     -a _f_i_l_e True, if _f_i_l_e exists.

     -b _f_i_l_e True if _f_i_l_e exists and is a block special file.

     -c _f_i_l_e True if _f_i_l_e exists and is a character special
               file.

     -d _f_i_l_e True if _f_i_l_e exists and is a directory.

     -e _f_i_l_e True if _f_i_l_e exists.

     -f _f_i_l_e True if _f_i_l_e exists and is a regular file.

     -g _f_i_l_e True if _f_i_l_e exists and its set group ID flag is
               set.

     -k _f_i_l_e True, if _f_i_l_e exists and is has its sticky bit
               set.

     -n _s_t_r_i_n_g True if the length of _s_t_r_i_n_g is non-zero.

     -o _o_p_t_i_o_n True, if option named _o_p_t_i_o_n is on.

     -p _f_i_l_e True if _f_i_l_e is a named pipe (FIFO).

     -r _f_i_l_e True if file exists and is readable.

     -s _f_i_l_e True if _f_i_l_e exists and has a size greater than
               zero.

     -t _f_i_l_e__d_e_s_c_r_i_p_t_o_r

SunOS 5.7 Last change: 13 Dec 1996 6

User Commands if(1)

               True if the file whose file descriptor number is
               _f_i_l_e__d_e_s_c_r_i_p_t_o_r is open and is associated with a
               terminal.

     -u _f_i_l_e True if _f_i_l_e exists and its set-user-ID flag is
               set.

     -w _f_i_l_e True if _f_i_l_e exists and is writable. True will
               indicate only that the write flag is on. The _f_i_l_e
               will not be writable on a read-only file system
               even if this test indicates true.

     -x _f_i_l_e True if _f_i_l_e exists and is executable. True will
               indicate only that the execute flag is on. If _f_i_l_e
               is a directory, true indicates that _f_i_l_e can be
               searched.

     -z _s_t_r_i_n_g True if the length of string _s_t_r_i_n_g is zero.

     -L _f_i_l_e True, if _f_i_l_e exists and is a symbolic link.

     -O _f_i_l_e True, if _f_i_l_e exists and is owned by the effective
               user ID of this process.

     -G _f_i_l_e True, if _f_i_l_e exists and its group matches the
               effective group ID of this process.

     -S _f_i_l_e True, if _f_i_l_e exists and is a socket.

     _f_i_l_e_1-nt _f_i_l_e_2
               True, if _f_i_l_e_1 exists and is newer than _f_i_l_e_2.

     _f_i_l_e_1-ot _f_i_l_e_2
               True, if _f_i_l_e_1 exists and is older than _f_i_l_e_2.

     _f_i_l_e_1-ef _f_i_l_e_2
               True, if _f_i_l_e_1 and _f_i_l_e_2 exist and refer to the
               same file.

     _s_t_r_i_n_g True if the string _s_t_r_i_n_g is not the null string.

     _s_t_r_i_n_g = _p_a_t_t_e_r_n
               True, if _s_t_r_i_n_g matches _p_a_t_t_e_r_n.

     _s_t_r_i_n_g != _p_a_t_t_e_r_n
               True, if _s_t_r_i_n_g does not match _p_a_t_t_e_r_n.

     _s_t_r_i_n_g_1=_s_t_r_i_n_g_2
               True if the strings _s_t_r_i_n_g_1 and _s_t_r_i_n_g_2 are ident-
               ical.

     _s_t_r_i_n_g_1! =_s_t_r_i_n_g_2

SunOS 5.7 Last change: 13 Dec 1996 7

User Commands if(1)

               True if the strings _s_t_r_i_n_g_1 and _s_t_r_i_n_g_2 are not
               identical.

     _s_t_r_i_n_g_1 < _s_t_r_i_n_g_2
               True, if _s_t_r_i_n_g_1 comes before _s_t_r_i_n_g_2 based on
               ASCII value of their characters.

     _s_t_r_i_n_g_1 > _s_t_r_i_n_g_2
               True, if _s_t_r_i_n_g_1 comes after _s_t_r_i_n_g_2 based on
               ASCII value of their characters.

     _n_1 -eq _n_2 True if the integers _n_1 and _n_2 are algebraically
               equal.

     _n_1 -ne _n_2 True if the integers _n_1 and _n_2 are not algebrai-
               cally equal.

     _n_1 -gt _n_2 True if the integer _n_1 is algebraically greater
               than the integer _n_2.

     _n_1 -ge _n_2 True if the integer _n_1 is algebraically greater
               than or equal to the integer _n_2.

     _n_1 -lt _n_2 True if the integer _n_1 is algebraically less than
               the integer _n_2.

     _n_1 -le _n_2 True if the integer _n_1 is algebraically less than
               or equal to the integer _n_2.

     These primaries can be combined with the following operator:

     !_c_o_n_d_i_t_i_o_n
               True if _c_o_n_d_i_t_i_o_n is false.

     The primaries with two elements of the form:

     -_p_r_i_m_a_r_y__o_p_e_r_a_t_o_r _p_r_i_m_a_r_y__o_p_e_r_a_n_d

     are known as _u_n_a_r_y _p_r_i_m_a_r_i_e_s. The primaries with three ele-
     ments in either of the two forms:

     _p_r_i_m_a_r_y__o_p_e_r_a_n_d -_p_r_i_m_a_r_y__o_p_e_r_a_t_o_r _p_r_i_m_a_r_y__o_p_e_r_a_n_d
     _p_r_i_m_a_r_y__o_p_e_r_a_n_d _p_r_i_m_a_r_y__o_p_e_r_a_t_o_r _p_r_i_m_a_r_y__o_p_e_r_a_n_d

     are known as _b_i_n_a_r_y _p_r_i_m_a_r_i_e_s.

     The algorithm for determining the precedence of the opera-
     tors and the return value that will be generated is based on
     the number of arguments presented to test . (However, when
     using the [...] form, the right-bracket final argument will
     not be counted in this algorithm.)

SunOS 5.7 Last change: 13 Dec 1996 8

User Commands if(1)

     In the following list, $1, $2, $3 and $4 represent the argu-
     ments presented to test .

     _0 _a_r_g_u_m_e_n_t_s:
               Exit false (1).

     _1 _a_r_g_u_m_e_n_t:
               Exit true (0) if $1 is not null; otherwise, exit
               false.

     _2 _a_r_g_u_m_e_n_t_s:

                  +o If $1 is !, exit true if $2 is null, false
                     if $2 is not null.

                  +o If $1 is a unary primary, exit true if the
                     unary test is true, false if the unary test
                     is false.

                  +o Otherwise, produce unspecified results.

     _3 _a_r_g_u_m_e_n_t_s:

                  +o If $2 is a binary primary, perform the
                     binary test of $1 and $3.

                  +o If $1 is !, negate the two-argument test of
                     $2 and $3.

                  +o Otherwise, produce unspecified results.

     _4 _a_r_g_u_m_e_n_t_s:

                  +o If $1 is !, negate the three-argument test
                     of $2, $3, and $4.

                  +o Otherwise, the results are unspecified.

USAGE
     Scripts should be careful when dealing with user-supplied
     input that could be confused with primaries and operators.
     Unless the application writer knows all the cases that pro-
     duce input to the script, invocations like:

     test "$1" -a "$2"

     should be written as:

SunOS 5.7 Last change: 13 Dec 1996 9

User Commands if(1)

     test "$1" && test "$2"

     to avoid problems if a user supplied values such as $1 set
     to ! and $2 set to the null string. That is, in cases where
     maximal portability is of concern, replace:

     test expr1 -a expr2

     with:

     test expr1 && test expr2

     and replace:

     test expr1 -o expr2

     with:

     test expr1 || test expr2

     but note that, in test , -a has higher precedence than -o
     while && and || have equal precedence in the shell.

     Parentheses or braces can be used in the shell command
     language to effect grouping.

     Parentheses must be escaped when using sh ; for example:

     test \( expr1 -a expr2 \) -o expr3

     This command is not always portable outside XSI-conformant
     systems. The following form can be used instead:

     ( test expr1 && test expr2 ) || test expr3

     The two commands:

     test "$1"
     test ! "$1"

     could not be used reliably on some historical systems. Unex-
     pected results would occur if such a _s_t_r_i_n_g condition were
     used and $1 expanded to !, ( or a known unary primary.
     Better constructs are:

     test -n "$1"
     test -z "$1"

     respectively.

     Historical systems have also been unreliable given the com-
     mon construct:

SunOS 5.7 Last change: 13 Dec 1996 10

User Commands if(1)

     test "$response" = "expected string"

     One of the following is a more reliable form:

     test "X$response" = "Xexpected string"
     test "expected string" = "$response"

     Note that the second form assumes that expected string could
     not be confused with any unary primary. If expected string
     starts with -, (, ! or even =, the first form should be used
     instead. Using the preceding rules without the marked exten-
     sions, any of the three comparison forms is reliable, given
     any input. (However, note that the strings are quoted in all
     cases.)

     Because the string comparison binary primaries, = and !=,
     have a higher precedence than any unary primary in the >4
     argument case, unexpected results can occur if arguments are
     not properly prepared. For example, in

     test -d $1 -o -d $2

     If $1 evaluates to a possible directory name of =, the first
     three arguments are considered a string comparison, which
     causes a syntax error when the second -d is encountered. is
     encountered. One of the following forms prevents this; the
     second is preferred:

     test \( -d "$1" \) -o \( -d "$2" \)
     test -d "$1" || test -d "$2"

     Also in the >4 argument case,

     test "$1" = "bat" -a "$2" = "ball"

     Syntax errors will occur if $1 evaluates to ( or !. One of
     the following forms prevents this; the third is preferred:

     test "X$1" = "Xbat" -a "X$2" = "Xball"
     test "$1" = "bat" && test "$2" = "ball"
     test "X$1" = "Xbat" && test "X$2" = "Xball"

EXAMPLES
     In the if command examples, three conditions are tested,
     and if all three evaluate as true or successful, then their
     validities are written to the screen. The 3 tests are:

        +o if a variable set to 1 is greater than 0,

        +o if a variable set to 2 is equal to 2, and

        +o if the word "root" is included in the text file

SunOS 5.7 Last change: 13 Dec 1996 11

User Commands if(1)

           /etc/passwd.

  /usr/bin/test
     Example 1: Using /usr/bin/test

     Perform a mkdir if a directory does not exist:

     test ! -d tempdir && mkdir tempdir

     Wait for a file to become non-readable:

     while test -r thefile
     do
        sleep 30
     done
     echo'"thefile" is no longer readable'

     Perform a command if the argument is one of three strings
     (two variations):

      if [ "$1" = "pear" ] | | [ "$1" = "grape" ] | | [ "$1" = "apple" ]
     then
         command
     fi
     case "$1" in
         pear|grape|apple) command;;
     esac

  The test built-in
     The two forms of the test built-in follow the Bourne
     shell's if example.

     Example 2: Using the sh built-in

      ZERO=0 ONE=1 TWO=2 ROOT=root

     if [ $ONE -gt $ZERO ]

     [ $TWO -eq 2 ]

     grep $ROOT /etc/passwd >&1 > /dev/null # _d_i_s_c_a_r_d _o_u_t_p_u_t
     then

         echo "$ONE is greater than 0, $TWO equals 2, and $ROOT is a user-name
               in the password file"

     else

         echo "At least one of the three test conditions is false"
     fi

SunOS 5.7 Last change: 13 Dec 1996 12

User Commands if(1)

     Example 3: Using the test built-in

     Examples of the test built-in:

      test `grep $ROOT /etc/passwd >&1 /dev/null` # _d_i_s_c_a_r_d _o_u_t_p_u_t

     echo $? # _t_e_s_t _f_o_r _s_u_c_c_e_s_s [ `grep nosuchname /etc/passwd >&1 /dev/null` ]

     echo $? # _t_e_s_t _f_o_r _f_a_i_l_u_r_e

  csh
     Example 4: Using the csh built-in

      @ ZERO = 0; @ ONE = 1; @ TWO = 2; set ROOT = root
     grep $ROOT /etc/passwd >&1 /dev/null # _d_i_s_c_a_r_d _o_u_t_p_u_t
         # $_s_t_a_t_u_s _m_u_s_t _b_e _t_e_s_t_e_d _f_o_r _i_m_m_e_d_i_a_t_e_l_y _f_o_l_l_o_w_i_n_g _g_r_e_p
     if ( "$status" == "0" && $ONE > $ZERO && $TWO == 2 ) then
            echo "$ONE is greater than 0, $TWO equals 2, and $ROOT is a user-name
                  in the password file"
      endif

  ksh
     Example 5: Using the ksh built-in

      ZERO=0 ONE=1 TWO=$((ONE+ONE)) ROOT=root
     if ((ONE > ZERO)) # _a_r_i_t_h_m_e_t_i_c_a_l _c_o_m_p_a_r_i_s_o_n [[ $TWO = 2 ]] # _s_t_r_i_n_g _c_o_m_p_a_r_i_s_o_n [ `grep $ROOT /etc/passwd >&1 /dev/null` ] # _d_i_s_c_a_r_d _o_u_t_p_u_t
     then
          echo "$ONE is greater than 0, $TWO equals 2, and $ROOT is a user-name
                 in the password file"

     else
          echo "At least one of the three test conditions is false"
     fi

     The Korn shell will also accept the syntax of both the if
     command and the test command of the Bourne shell.

     When using the brackets ([]) within if commands, you must
     separate both inside ends of the brackets from the inside
     characters with a space.

ENVIRONMENT VARIABLES
     See environ(5) for descriptions of the following environment
     variables that affect the execution of test : LC_CTYPE,
     LC_MESSAGES, and NLSPATH.

EXIT STATUS
     The following exit values are returned:

     0 _c_o_n_d_i_t_i_o_n evaluated to true.

     1 _c_o_n_d_i_t_i_o_n evaluated to false or _c_o_n_d_i_t_i_o_n was

SunOS 5.7 Last change: 13 Dec 1996 13

User Commands if(1)

               missing.

>1 An error occurred.

ATTRIBUTES
     See attributes(5) for descriptions of the following attri-
     butes:
     ____________________________________________________________
    | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
    |______________________________|______________________________|
    | Availability | SUNWcsu |
    |______________________________|______________________________|

SEE ALSO
     csh(1), ksh(1), sh(1), test(1B), attributes(5), environ(5),
     largefile(5)

NOTES
     Both the Bourne shell, sh, and the Korn shell, ksh, can use
     the semicolon and the carriage return interchangeably in
     their syntax of the if , for , and while built-in commands.

SunOS 5.7 Last change: 13 Dec 1996 14

-
Please send submissions to hackers@mozart-oz.org
and administriva mail to hackers-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.



This archive was generated by hypermail 2b29.