| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The "apply code" selected determines the method of evaluating the expression. There are five apply codes, including the non-use of an apply code.
value-name, if defined.
Otherwise it is the empty string.
value-name, then the basic-expr
is evaluated. Otherwise, the result is the empty string.
value-name is defined, use basic-expr as a format
string for sprintf. Then, if the basic-expr is either a back-quoted
string or a parenthesized expression, then hand the result to the
appropriate interpreter for further evaluation. Otherwise, for single
and double quote strings, the result is the result of the sprintf operation.
Naturally, if value-name is not defined, the result is the empty
string.
For example, assume that fumble had the string value, stumble:
[+ % fumble `printf '%%x\\n' $%s` +] |
printf '%x\n' $stumble".
Assuming that the shell variable stumble had a numeric value,
the expression result would be that number, in hex. Note the need
for doubled percent characters and backslashes.
basic-expr-s are required. If the value-name is
defined, then the first basic-expr-1 is evaluated, otherwise
basic-expr-2 is.
basic-expr only if value-name is not defined.
value-name is
defined, it behaves exactly like `%', above, using basic-expr-1.
If not defined, then basic-expr-2 is evaluated.
For example, assume again that fumble had the string value, stumble:
[+ ?% fumble `cat $%s` `pwd` +] |
cat $stumble".
If fumble were not defined, then the result would be the name
of our current directory.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |