Node:Complex formats, Previous:Formats for general objects, Up:Formatted output
%?
Indirection
The ?
format directive uses up two arguments.
It calls format
recursively, using the first argument
as a format control string, and the second argument
(which must be a sequence) as the list of arguments to process.
Q1> printf "%s%?%s" "Before<" "(%d;%#x)" [10 20] ">After." Before<(10;0x14)>After.
%#?
Indirection.
Same as %?
, except that one one argument is consumed, which
is used as a format control string to a recursive call to (s)printf
.
The recursive call may use arguments from the original call:
Q2> printf "%s%#?%s" "Before<" "[%d;%#x]" 10 20 ">After." Before<[10;0x14]>After.
%#count{actions%}
Iteration
Keep repeating the actions, until there are no more arguments.
Repeat at most count times (default is infinity).
%count{actions%}
Iteration
Same as %#count{actions%}
, but uses one
argument, which must be a sequence. That sequence used whenever
arguments are needed by the actions.
Q1> printf "%{(%s)%}" [3 4 5] (3)(4)(5) Q2> printf "%#{(%s)%}" 3 4 5 (3)(4)(5)
%^
Break from iteration