从 Bash 4.3.48(1) 开始,有几次我误认为bash -v
或bash --v
表示bash --version
它们没有。
从man bash
,bash -v
等价于bash --verbose
; 虽然它返回一个很大的输出(据称是一些bashrc
文件,可能更多);我认为它只是开始一个子会话。
bash --v
输出少得多,主要是bash: --v: invalid option
。
我计划询问这两者中的任何一个是否可能在全默认 bash 中出现问题,但我没有看到任何证据,并假设 Bash 新手不应该受到这些压力。
我的问题
我确实误会了man bash
, 是什么意思bash -v varname
。
用一个看似未定义的变量启动一个新的 bash 会话是什么意思,或者它意味着启动它还打印一个导出变量的值[1
]?
新人注意事项:
- 导出变量是从一个 shell 会话继承到另一个 shell 会话的任何变量(例如从会话 0 到会话 1)。
你混淆了两件事。
启动
bash
asbash -v
将启动一个设置bash
了set -v
(set -o verbose
) shell 选项的 shell。它等价于bash -o verbose
and tobash --verbose
(为数不多的具有等价长选项的 shell 选项之一)。abefhkmnptuvxBCHP
可以通过使用它们的单个字母或-o
在开始时直接使用它们的长名称来设置任何选项bash
,例如bash -x
andbash -o xtrace
。-v varname
我假设来自内置命令的描述,该命令test
能够测试变量是否设置为test -v varname
or[ -v varname ]
。请参阅
bash
手册或help set
和help test
。bash
长选项
bash
不能缩写。