man bash 1 选项 参数

选项(Options)

除了set内置命令描述中的单字符选项外,bash在被调用时也解释如下选项:

-c string

如果有-c,命令从string中读入。如果在string后面有参数,它们被赋给位置变量,从$0开始。

$ echo $0
-bash
$ bash -c "echo $0"
-bash
$ bash -c "echo \$0"
bash
$ bash -c "echo \$0" foo
foo
$ bash -c 'echo $0'
bash
$ bash -c 'echo $0' foo
foo
$ bash -c help
...
$ bash -c "help set"
...
$ bash -c 'help $0' set
...

-i

如果有-i,shell是交互式的(interactive)。

-l

使得bash行为表现的像登录shell(login shell)一样。

-r

如果有-r,shell就是受限的(restricted)。

-s

如果有-s,或者选项处理之后没有别的参数,那么命令从标准输入读入。这个选项允许在调用交互式shell时设置位置变量。

$ echo $SHLVL 
1
$ bash -s hello world
$ echo $SHLVL 
2
$ echo $0 $1 $2
bash hello world

-D

在标准输出中打印$引导的双引号字符串列表。如果当前区域设置不是C或者POSIX的时候,这些字符串与语言翻译相关。这个选项意味着-n选项,不执行命令。

$ cat test.sh 
#!/bin/sh

echo $"hello" $"world"
$ ./test.sh 
hello world
$ bash -D test.sh 
"hello"
"world"

[-+]O [shopt_option]

shopt_optionshopt内置命令能接受的shell选项之一。如果有shopt_option-O设置该选项,+O清除该选项。如果没有shopt_optionshopt能接受的shell选项的名字和值被打印到标准输出(bash -O)。如果以bash+O调用,输出可以用作输入。

--

--表示选项的结束并禁止进一步的选项处理。--后面的参数被认为是文件名和参数。参数为-它等同于--


bash也处理一些多字符选项。要识别这些选项,它们必须在命令行上出现在单字符选项之前。

--debugger

在shell开始之前执行调试器配置。打开扩展调试模式(extdebug/shopt)和shell函数跟踪(-o functrace/set)。

--dump-po-strings

等同于-D,输出是GNU gettext po(portable object)文件格式。

--dump-strings

等同于-D.

--help

在标准输出显示使用信息然后成功退出。

--init-file file
--rcfile file

如果shell是交互式的,执行file中的命令而不是标准的个人初始化文件~/.bashrc

--login

等同于-l

--noediting

如果shell是交互式的,不使用GNU readline库来读取命令行。

--noprofile

不读取系统级的启动文件/etc/profile或者任意的个人初始化文件~/.bash_profile~/.bash_login或者~/.profile。默认情况下bash会读取这些文件如果它是登录shell。

--norc

如果shell是交互式的,不读取并执行个人初始化文件~/.bashrc。如果shell以sh被调用,这个选项默认打开。

--posix

改变bash的行为以匹配标准(posix模式),这些行为的默认操作与POSIX标准不同。

--restricted

shell是受限制的。

--rpm-requires

产生为了运行shell脚本所需要的文件列表。这意味着'-n'且与编译期错误检查有着相同的限制;反引号(`),[]测试和演算(evals)是不被解析的,所以一些依赖可能缺失。

--verbose

等同于-v

--version

在标准输出显示版本信息然后成功退出。


参数(Arguments)

如果选项处理之后仍然有参数,同时又没有-c或者-s选项,那么第一个参数被认为是包含shell命令的文件的名字。$0被设置成文件名,位置变量被设置成剩余的参数。bash从文件中读取命令并执行,然后退出。bash的退出状态是脚本中最后一个执行的命令的退出状态。如果没有执行命令,退出状态是0。首先尝试在当前目录打开文件,如果文件没有找到,shll就会在PATH中的目录寻找脚本。


你可能感兴趣的:(man bash 1 选项 参数)