6.1 调用Bash
bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o option]
[-O shopt_option] [argument …]
bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o option]
[-O shopt_option] -c string [argument …]
bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o option]
[-O shopt_option] [argument …]
所有与set
内置程序一起使用的单字符选项(见1 Set 内置程序)都可以在调用shell时作为选项使用。 此外,还有几个多字符选项,你可以使用。这些选项必须出现在命令行中的单字符选项之前,才能被识别。
--debugger
安排在shell启动前执行调试器配置文件。打开扩展的调试模式(参见2 Shopt 内置程序关于
shopt
Builtin的extdebug
选项的描述)。--dump-po-strings
以‘$’开头的所有双引号字符串的列表以GNU
gettext
PO(可移植对象)文件格式打印在标准输出上。 除输出格式外,等同于-D。--dump-strings
相当于-D。
--help
在标准输出端显示一条使用信息,并成功退出。
--init-file filename
--rcfile filename
在交互式shell中执行filename的命令(而不是~/.bashrc)。
--login
相当于-l。
--noediting
当shell是交互式的时候,不要使用GNU Readline库(见8 命令行的编辑)来读取命令行。
--noprofile
当Bash作为登录shell被调用时,不要加载全系统的启动文件/etc/profile或任何个人的初始化文件~/.bash_profile,~/.bash_login,或~/.profile。
--norc
不要在交互式shell中读取~/.bashrc初始化文件。如果shell是以
sh
的方式调用的,默认情况下这是打开的。--posix
改变Bash在默认操作与POSIX标准不同的情况下的行为,以符合标准。这旨在使Bash的行为成为该标准的一个严格的超集。参见6.11 Bash的POSIX模式,以了解对Bash POSIX模式的描述。
--restricted
使shell成为受限的shell(见6.10 受限制的shell)。
--verbose
相当于-v。在读取shell输入行时打印它们。
--version
在标准输出上显示这个Bash实例的版本信息,并成功退出。
有几个单字符的选项可以在调用时提供,而这些选项在set
内置程序中是不可用的。
-c
读取并执行第一个非选项参数command_string中的命令,然后退出。如果在command_string之后还有参数,则第一个参数被分配给
$0
,其余的参数被分配给位置参数。 对$0
的分配设定了shell的名称,在警告和错误信息中使用。-i
强制 shell 以交互方式运行。交互式shell的描述见6.3 交互式shell。
-l
让这个shell像被login直接调用一样。 当shell是交互式的,这相当于用‘exec -l bash’启动一个login shell。 当shell不是交互式的,login shell的启动文件将被执行。‘exec bash -l’或‘exec bash --login’将用Bash登录shell替换当前shell。 参见6.2 Bash的启动文件,了解登录shell的特殊行为。
-r
使shell成为受限的shell(见6.10 受限制的shell)。
-s
如果有这个选项,或者在选项处理后没有留下任何参数,那么命令将从标准输入中读取。 这个选项允许在调用交互式shell或通过管道读取输入时,设置位置参数。
-D
在标准输出上打印所有以‘$’开头的双引号字符串的列表。 当当前语言环境不是
C
或POSIX
时,这些是要进行语言翻译的字符串(见Local-Specific Translation)。 这意味着-n选项;不会执行任何命令。[-+]O [shopt_option]
shopt_option是内置程序
shopt
所接受的shell选项之一(见2 Shopt 内置程序)。 如果shopt_option存在,-O设置该选项的值;+O取消设置。如果没有提供shopt_option,由shopt
接受的shell选项的名称和值将被打印在标准输出上。 如果调用选项是+O,则输出以可重复用作输入的格式显示。--
一个
--
标志着选项的结束,并禁止进一步的选项处理。 在--
之后的任何参数都被视为文件名和参数。
一个login的shell是指参数0的第一个字符是‘-’的shell,或者是用--login选项调用的。
一个interactive shell是在没有非选项参数的情况下启动的,除非指定了-s,没有指定-c选项,并且其输入和输出都连接到终端(由isatty(3)
决定),或者用-i选项启动。参见6.3 交互式shell,了解更多信息。
如果参数在选项处理后仍然存在,并且既没有提供-c也没有提供-s选项,那么第一个参数将被假定为包含shell命令的文件名(参见Shell Scripts)。 当以这种方式调用Bash时,$0
被设置为文件名,而位置参数被设置为其余参数。 Bash读取并执行该文件的命令,然后退出。Bash的退出状态是脚本中最后执行的命令的退出状态。如果没有执行任何命令,则退出状态为0。