【发布时间】:2020-05-14 10:49:45
【问题描述】:
我在 macOS 上运行 VS Code(如果重要的话,是 10.13.6)。这是我在其集成终端中得到的:
$ echo $0
/bin/bash
但在 macOS 终端应用程序中,我得到:
$ echo $0
-bash
我见过dash prefix means it's a login shell。 VS Code 不是这样吗?这里说的是the default for macOS。
我一直在尝试将 Login Shell 更改为 /bin/zsh,然后更改为 /usr/local/bin/zsh 以使用来自 Homebrew 的安装。这引起了一些混乱。
【问题讨论】:
-
那么...你的问题是什么?
-
这是 MacOS 终端启动 shell 时的默认设置。 MacOS 中并非默认无处不在。
-
无论如何,你的实际目标是什么?如果你想知道当前的 shell 是否是登录 shell,可靠的测试方法是
[[ $- = *l* ]](或者,更便携的,case $- in *l*) echo "Yes, it's a login shell";; *) echo "No, it's not a login shell";; esac),与$0完全无关。 -
...类似地,如果您想知道当前的 shell 是否是 bash,那么可靠的测试方法更像是
if [ -n "$BASH_VERSION" ]; then echo "The current shell either is bash, or is run by someone who wants to pretend to be bash"; fi。$0确实没有太多好的用例——请参阅 BashFAQ #28 描述它是如何不适合的,即使人们经常尝试将其用于查找当前正在运行的脚本的位置.
标签: bash shell visual-studio-code echo zsh