突然发现,自己学习了shell这么久,一直没有找到入门的方法,于是现在疯狂地要使用最后一个办法,那就是读外文文献,然后学习。下面的内容是我所见到自己理解的,希望读者自行斟酌是否要去看,以免产生误解。now,beginning:

Invoking The Shell:

bash [option] [auguments]

option:

-c str这个是指bash来执行str这个命令,比如:bash -c ls。原文是从str读取cmd。

-D --dump-strings

注:至今为止我看不懂这个选项的含义: -D  A list of all double-quoted strings preceded by $ is printed on  the standard output.  These are the strings that are subject to language translation when the current locale is not C or POSIX.  This implies the -n option; no commands will be executed.

[Debian]igi(116329739)  17:20:56

-D  类似 -n ,不会执行这个脚本,但会输出以$"" 包起来的字符串,$""包起来的字符串和本地化的东西有关

这个是别人给我的解答,完全正确。我写了个脚本里面包含了echo $"eleven always make it",还有一个ping g.cn。用bash -D $0(脚本名字)的时候没有ping的执行,执行echo后面的内容。

continuing:

-O option:使得shopt命令选项能够生效。简单的shopt命令就是查看shell内部特性的开启状态其中的option就是执行shopt后显示的变量内容。不再赘述。比如执行shopt命令后,第二个变量是cdspell,状态为off,那么可以使用bash -O cdspell来打开这个变量扩展。然后再次执行shopt来查看状态是否为on。

-i :建立一个交互型shell,交互型shell和受限制的shell在执行shopt后所显示的变量扩展内容是不一样的,所以,就导致了某些命令是不能使用的,在你执行bash -r之后,cd命令是不能使用的,而你执行后bash -i变为交互型shell的时候,cd是可用的。这样明白了吧。顺便把-r选项也一起讲解了。注意,如果你执行了-i和-r选项后,想要退出的话不能使用logout,因为非登录shell,所以必须使用exit。

-P:这个选项用来忽略系统环境变量的也就是忽略/etc/profile等其他系统及环境变量,只是使用$HOME/.bash_profile下的变量。举个例子:就是在/etc/profile下加入一个变量wo=eleven,source /etc/profile,注销(logout):,再次登入后,首先echo $wo,执行bash -P,再次执行echo $wo然后,就发现一个有输出,一个没有输出了。

-s选项:讲述的是从命令从标准输入,也就是键盘。输出内建命令执行的结果是从文件描述符号1,而其他shell命令的输出是从文件描述符号2.也就说,错误和其他shell命令的输出都走文件描述符2,只有内建命令的正确输出走文件描述符1。关于标准输出和输入的内容读者自行去查阅资料在此不赘述,以后设计相关会进行讲解。

--debugger调试:对我没用,没有研究。

--dump-po-strings:引用原文:same as -D option,but output in GNU gettext format

--help 

--init-file file --rcfile file 引用原文:Use file as the startupfile instead of ~/.bashrc for interactive shells.自我定制启动读取的环境变量,而不是读取用户,这个也许在特殊shell脚本中有用吧,笔者不是很了解。但是含义确是这个意思。明天继续写。