[ < ] | [ > ] | [ << ] | [ 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 foo
had the string value, bar
:
[+ % foo `printf '%%x\\n' $%s` +] |
printf '%x\n' $bar
".
Assuming that the shell variable bar
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 foo
had the string value, bar
:
[+ ?% foo `cat $%s` `pwd` +] |
cat $bar
".
If foo
were not defined, then the result would be the name
of our current directory.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |