xorriso: Processing
7 Command processing
********************
Commands are either actions which happen immediately or settings which
influence following actions. So their sequence does matter, unless they
are given as program arguments and command *-x* is among them.
Commands consist of a command word, followed by zero or more parameter
words. If the list of parameter words is of variable length (indicated
by "[...]" or "[***]") then it must be terminated by either the *list
delimiter*, occur at the end of the argument list, or occur at the end
of an input line.
At program start the list delimiter is the string "--". This may be
changed with the -list_delimiter command in order to allow "--" as
parameter in a variable length list. However, it is advised to reset
the delimiter to "--" immediately afterwards.
For brevity the list delimiter is referred as "--" throughout this text.
The list delimiter is silently ignored if it appears after the
parameters of a command with a fixed list length. It is handled as
normal text if it appears among the parameters of such a command.
*Pattern expansion* converts a list of pattern words into a list of
existing file addresses. Unmatched pattern words will appear unaltered
in that result list.
Pattern matching supports the usual shell parser wildcards '*' '?'
'[xyz]' and respects '/' as the path separator, which may only be
matched literally.
Pattern expansion is a property of some particular commands and not a
general feature. It is controlled by commands -iso_rr_pattern and
-disk_pattern. Commands which use pattern expansion all have variable
parameter lists which are specified in this text by "[***]" rather than
"[...]".
Some other commands perform pattern matching unconditionally.
Command and parameter words are either read from the program
arguments, where one argument is one word, or from quoted input lines
where words are recognized similar to the quotation rules of a shell
parser.
'xorriso' is not a shell, although it might appear so at first glimpse.
Be aware that the interaction of quotation marks and pattern symbols
like "*" differs from the usual shell parsers. In 'xorriso', a
quotation mark does not make a pattern symbol literal.
*Quoted input* converts whitespace-separated text into words. The
double quotation mark " and the single quotation mark ' can be used to
enclose whitespace and make it part of words (e.g. of file names).
Each mark type can enclose the marks of the other type. A trailing
backslash \ outside quotations or an open quotation cause the next input
line to be appended.
Quoted input accepts any 8-bit character except NUL (0) as the content
of the quotes. Nevertheless it can be cumbersome for the user to
produce those characters directly. Therefore quoted input and program
arguments offer optional *Backslash Interpretation* which can represent
all 8-bit characters except NUL (0) via backslash codes as in $'...' of
bash.
This is not enabled by default. See command -backslash_codes.
When the program starts then it first looks for argument -no_rc. If
this is not present then it looks for its startup files and reads their
content as command input lines. Then it interprets the program
arguments as commands and parameters. Finally it enters dialog mode if
command -dialog "on" has been executed by this point.
The program ends either by command -end, or by the end of program
arguments if dialog mode has not been enabled at that point, or by a
problem event which triggers the threshold of command -abort_on.