关于bash
对于新的tty,当执行echo $SHLVL
命令时,它会按预期显示 1。现在,如果在同一个tty中执行bash
命令,稍后再执行命令,echo $SHLVL
它会显示 2。当然,必须使用exit
命令退出。此外,我确实意识到每个 bash 都有自己的历史命令,并且用户正在当前 bash 中交互或可以访问。
到目前为止,经过研究后发现它是一种子 shell(如果我错了请纠正我),因为大多数情况下都是通过这种方法创建子 shell (<command>)
。
就像玩游戏一样,我执行了bash cat /etc/os-release
命令,但没有任何打印内容。
因此很好奇
问题
- 怎么
bash <command-argument>
運作?
作为额外的问题:
- 在什么情况下
bash <command-argument>
必须采用该方法?
观察
答案中指出会出现错误消息。好吧,提到的错误是正确的(在 Ubuntu 和 Fedora 上测试过),但在我的例子中,该bash cat /etc/os-release
命令被用作创建基于 Linux 的 docker 容器的参数,并且没有显示任何错误,正如一开始所指出的那样,这就是创建这篇文章的原因。好吧,这是另一回事了