Like many other shells, XSH2 provides means for customizing
the format of its interactive shell prompt. The prompt is
displayed according to the content of the variable
$PROMPT
on which the following
substitutions and interpolations are performed
(in this order):
1. Prompt-string replacements
%% - percent sign %p - XPath location of the current node %P - like %p but without an initial document variable %l - XPath location of the current node with ID-shortcuts %L - like %l but without an initial document variable %n - name of the current node %N - local name of the current node %c - canonical XPath name of the current node %y - type of the current node (element,attribute,...) %i - ID of the current node %d - current document variable %h - the hostname up to the first '.' %H - the hostname %s - XSH shell name (basename of $0) %t - the current time in 24-hour HH:MM:SS format %T - the current time in 12-hour HH:MM:SS format %@ - the current time in 12-hour am/pm format %A - the current time in 24-hour HH:MM format %u - the username of the current user %v - the version of XSH2 (e.g., 2.1.0) %V - the revision number of XML::XSH2::Functions (e.g. 2.40) %w - current working directory (on the local filesystem) %W - basename of %w
2. Variable, XPath and Perl interpolations
Substrings of the forms ${variable}
,
${{...perl...}}
and
${(...xpath...)}
are interpolated as in XSH2
expressions.
3. Special character substitution
\n - newline character \r - line-feed character \t - tab character \a - bell character \b - backspace character \f - form feed character \e - escape character (\033) \\ - backslash character \nnn - the character corresponding to the octal number nnn (useful for non-printable terminal control characters)
The default value of $PROMPT
is "%p>"
.
Note that you must escape ${...}
interpolators like \${...}
if you
want them to be evaluated at each prompt
rather than at the time of the assignment to $PROMPT
.
For example:
Example 11. Let `uname` be computed once, `date` at every prompt
$PROMPT="[${{ chomp($u=`uname`);$u }} \${{ chomp($d=`date`);$d }}] %p>"