$PS2
is called the secondary prompt string and is
used when you are interactively entering a command that you have not
completed yet. It is usually set to “> " but you can redefine it. For
example:
[jp@freebsd jobs:0] /home/jp$ export PS2='Secondary: ' [jp@freebsd jobs:0] /home/jp$ for i in $(ls) Secondary: do Secondary: echo $i Secondary: done colors deepdir trunc_PWD
$PS3
is the
select prompt, and is used by the select statement
to prompt the user for a value. It defaults to #?, which
isn’t very intuitive. You should change it before using the
select command; for example:
[jp@freebsd jobs:0] /home/jp$ select i in $(ls) Secondary: do Secondary: echo $i Secondary: done 1) colors 2) deepdir 3) trunc_PWD #? 1 colors #? ^C [jp@freebsd jobs:0] /home/jp$ export PS3='Choose a directory to echo: ' [jp@freebsd jobs:0] /home/jp$ select i in $(ls); do echo $i; done 1) colors 2) deepdir 3) trunc_PWD Choose a directory to echo: 2 deepdir Choose a directory to echo: ^C
$PS4
is displayed during trace output. Its first character is
shown as many times as necessary to denote the nesting depth. The
default is “+ “. For example:
[jp@freebsd jobs:0] /home/jp$ cat demo #!/usr/bin/env bash set -o xtrace alice=girl echo "$alice" ls -l $(type -path vi) echo line 10 ech0 line 11 echo line 12 [jp@freebsd jobs:0] /home/jp$ ./demo + alice=girl + echo girl girl ++ type -path vi + ls -l /usr/bin/vi -r-xr-xr-x 6 root wheel 285108 May 8 2005 /usr/bin/vi + echo line 10 line 10 + ech0 line 11 ./demo: line 11: ech0: command not found + echo line 12 line 12 [jp@freebsd jobs:0] /home/jp$ export PS4='+xtrace $LINENO: ' [jp@freebsd jobs:0] /home/jp$ ./demo +xtrace 5: alice=girl +xtrace 6: echo girl girl ++xtrace 8: type -path vi +xtrace 8: ls -l /usr/bin/vi -r-xr-xr-x 6 root wheel 285108 May 8 2005 /usr/bin/vi +xtrace 10: echo line 10 line 10 +xtrace 11: ech0 line 11 ./demo: line 11: ech0: command not found +xtrace 12: echo line 12 line 12
18.224.63.87