错误地运行 bash -v 或 bash --v 来了解 bash 版本与 bash -v varname 的比较

错误地运行 bash -v 或 bash --v 来了解 bash 版本与 bash -v varname 的比较

从 Bash 4.3.48(1) 开始,有几次我错误地表示了它们的意思bash -vbash --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]?


新人注意事项:

  1. 导出变量是从一个 shell 会话继承到另一个 shell 会话(例如从会话 0 到会话 1)的任何变量。

答案1

你混淆了两件事。

  1. 启动bashasbash -v将启动一个设置了( ) shell 选项bash的 shell 。它相当于and to (少数几个具有长选项等效项的 shell 选项之一)。人们可以通过使用单个字母或在启动时直接使用其长名称来设置任何选项,例如和。set -vset -o verbosebash -o verbosebash --verboseabefhkmnptuvxBCHP-obashbash -xbash -o xtrace

  2. 我认为它-v varname来自内置test命令的描述,该命令能够测试变量是否使用test -v varname或设置[ -v varname ]

请参阅bash手册或中的help set和。help testbash

的长选项bash不能缩写。

相关内容