我试图确定运行我的脚本的人是在 bash shell 还是 zsh(或 gitbash)中。
我想我可以做这样的事情:
if [ $SHELL == *"zsh"* ]; then
THIS_SHELL="zsh"
elif [ $SHELL == *"bash"* ] || [ $0 = "/usr/bin/bash" ]; then
THIS_SHELL="bash"
fi
但有一点我不明白:
ALT02884% echo $SHELL
/bin/zsh
ALT02884% if [ $SHELL == *"zsh"* ]; then
then> echo "yes"
then> else
else> echo "no"
else> fi
zsh: = not found
这里发生了什么?
答案1
看起来我需要在测试中添加另一组方括号:
if [[ $SHELL == *"zsh"* ]]; then
THIS_SHELL="zsh"
elif [[ $SHELL == *"bash"* ]]; then
THIS_SHELL="bash"
fi