Chapter 6: Bash Features

93

\$

If the effective uid is 0, #, otherwise $.

\nnn

The character whose ASCII code is the octal value nnn.

\\

A backslash.

\[

Begin a sequence of non-printing characters. This could be used to embed a terminal control sequence into the prompt.

\]

End a sequence of non-printing characters.

The command number and the history number are usually different: the history number of a command is its position in the history list, which may include commands restored from the history file (see Section 9.1 [Bash History Facilities], page 133), while the command number is the position in the sequence of commands executed during the current shell session.

After the string is decoded, it is expanded via parameter expansion, command substi- tution, arithmetic expansion, and quote removal, subject to the value of the promptvars shell option (see Section 4.2 [Bash Builtins], page 48).

6.10 The Restricted Shell

If Bash is started with the name rbash, or the --restricted or -r option is supplied at invocation, the shell becomes restricted. A restricted shell is used to set up an environment more controlled than the standard shell. A restricted shell behaves identically to bash with the exception that the following are disallowed or not performed:

• Changing directories with the cd builtin.

• Setting or unsetting the values of the SHELL, PATH, ENV, or BASH_ENV variables.

• Specifying command names containing slashes.

• Specifying a filename containing a slash as an argument to the . builtin command.

• Specifying a filename containing a slash as an argument to the -p option to the hash builtin command.

• Importing function definitions from the shell environment at startup.

• Parsing the value of SHELLOPTS from the shell environment at startup.

• Redirecting output using the ‘>’, ‘>|’, ‘<>’, ‘>&’, ‘&>’, and ‘>>’ redirection operators.

• Using the exec builtin to replace the shell with another command.

• Adding or deleting builtin commands with the -f and -d options to the enable builtin.

• Using the enable builtin command to enable disabled shell builtins.

• Specifying the -p option to the command builtin.

• Turning off restricted mode with ‘set +r’ or ‘set +o restricted’.

These restrictions are enforced after any startup files are read.

When a command that is found to be a shell script is executed (see Section 3.8 [Shell

Scripts], page 39), rbash turns off any restrictions in the shell spawned to execute the script.