有几次,我误认为bash -v或bash --v表示的是bash --version,而它们在Bash4.3.48(1)中却不这样做。
在man bash中,bash -v等同于bash --verbose;尽管它返回一个大的输出(据称是一些bashrc文件,可能更多);我认为它只是启动一个子会话。
bash --v的输出要少得多,主要是bash: --v: invalid option。
我计划问一问这两个人中的任何一个是否会在一个完全默认的狂欢中出现问题,但我没有看到任何证据证明这一点,我认为bash新手不应该受到这些因素的压力。
我确实误解了man bash的意思,bash -v varname的意思是什么。
用一个看似未定义的变量启动一个新的bash会话意味着什么,或者它意味着通过打印导出变量[1的值来启动它]?
面向新来者的
发布于 2018-04-14 15:03:46
你混淆了两件事。
bash作为bash -v将启动bash shell,其中设置set -v (set -o verbose) shell选项。它等价于bash -o verbose和bash --verbose (是少数几个具有长选项等效的shell选项之一)。在启动abefhkmnptuvxBCHP时,可以使用它们的单个字母或直接使用-o和它们的长名称来设置任何bash选项,例如bash -x和bash -o xtrace。-v varname来自于内置test命令的描述,该命令能够测试变量是用test -v varname还是[ -v varname ]设置的。请参阅bash手册或bash中的help set和help test。
bash的长选项不能缩写。
https://unix.stackexchange.com/questions/437758
复制相似问题