If your prompt has some information that you want to stand out - or if you want your whole prompt to stand out from the rest of the text on the screen - you might be able to make it in enhanced characters. If your terminal has special escape sequences ( 5.8 ) for enhancing the characters (and most do), you can use them to make part or all of your prompt stand out.
csh_init
|
Let's say that you want to make sure people notice that they're logged in as root (the superuser) by making part of the root prompt flash. Here are lines for the root .cshrc : sh_init |
---|
echo...033 uname -n |
# Put ESCape character in $e. Use to start blinking mode (${e}[5m) # and go back to normal mode (${e}[0m) on VT100-series terminals: set e="`echo x | tr x \\033`" set prompt="${e}[5mroot${e}[0m@`uname -n`# " |
---|
That prompt might look like this, with the word
root
flashing:
[email protected]#
The prompt is set inside double quotes (
"
), so the
uname -n
command is run once, when the
PS1
string is first stored. In some shells, like
bash
and
pdksh
, you can put single quotes (
'
) around the
PS1
string; this stores the backquotes (
`
) in the string, and the shell will interpret them before it prints each prompt. (In this case, that's useless because the output of
uname -n
will always be the same. But if you want constantly updated information in your prompt, it's very handy.) Article
8.14
tells more.
Because the same escape sequences won't work on all terminals, it's probably a good idea to add
an
if
test (
47.3
)
that only sets the prompt if the terminal type
$TERM
is in the Digital Equipment Corporation VT100 series (or one that emulates it).
Table 7.1
shows a few escape sequences for VT100 and compatible terminals. The
ESC
in each sequence stands for an ESCape character.
Sequence | What it Does |
---|---|
ESC[1m | Bold, intensify foreground |
ESC[4m | Underscore |
ESC[5m | Blink |
ESC[7m | Reverse video |
ESC[0m | All attributes off |
Of course, you can use different escape sequences if your terminal needs them. Better, read your terminal's terminfo or termcap database with a program like tput or tcap ( 41.10 ) to get the correct escape sequences for your terminal. Store the escape sequences in shell variables ( 6.8 ) .
bash
interprets octal character strings in the prompt. So you can simplify the two commands above into the version below. Change the backquotes (
`...`
) to
$(
and
)
(
9.16
)
if you want:
PS1="\033[5mroot\033[0m@`uname -n`# "
Eight-bit-clean versions of
tcsh
can put standout, boldface, and underline - and any other terminal escape sequence, too - into your shell prompt. For instance,
%S
starts standout mode and
%s
ends it; the
tcsh
manpage has details for your version.
For example, to make the same prompt as above with the word
root
in standout mode (
tcsh
puts the hostname into
%m
):
set prompt = '%Sroot%s@%m# '
-