预计阅读本页时间:-
shopt
bash 2.0 introduced a new built-in for configuring shell behaviour, shopt. This built-in is meant as a replacement for option configuration originally done through environment variables and the set command. [6]
The shopt -o functionality is a duplication of parts of the set command and is provided for completeness on the part of shopt, while retaining backward compatibility by its continued inclusion in set.
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
The format for this command is shopt options option-names. Table 3-2 lists shopt's options.
Table 3-2. Options to shopt
Option
Meaning
-p
Displays a list of the settable options and their current values
-s
Sets each option name
-u
Unsets each option name
-q
Suppresses normal output; the return status indicates if a variable is set or unset
-o
Allows the values of the option names to be those defined for the -o option of the set command
The default action is to unset (turn off) the named options. If no options and arguments are given, or the -p option is used, shopt displays a list of the settable options and the values that they currently have. If -s or -u is also given, the list is confined to only those options that are set or unset, respectively.
A list of the most useful option names is given in Table 3-3. A complete list is given in Appendix B.
Table 3-3. shopt option names
Option
Meaning
cdable_vars
If set, an argument to the cd built-in command that is not a directory is assumed to be the name of a variable whose value is the directory to change to.
checkhash
If set, bash checks that a command found in the hash table exists before trying to execute it. If a hashed command no longer exists, a normal path search is performed.
cmdhist
If set, bash attempts to save all lines of a multiple-line command in the same history entry.
dotglob
If set, bash includes filenames beginning with a . (dot) in the results of pathname expansion.
execfail
If set, a non-interactive shell will not exit if it cannot execute the file specified as an argument to the exec command. An interactive shell does not exit if exec fails.
histappend
If set, the history list is appended to the file named by the value of the HISTFILE variable when the shell exits, rather than overwriting the file.
lithist
If set, and the cmdhist option is enabled, multiline commands are saved to the history with embedded newlines, rather than using semicolon separators where possible.
mailwarn
If set, and a file that bash is checking for mail has been accessed since the last time it was checked, the message "The mail in mailfile has been read" is displayed.
We'll look at the use of the various options later in this chapter.
[6] Appendix B provides a complete list of shopt shell options and the corresponding environment variables in earlier versions of the shell.