如何使用$SHELL?

如何使用$SHELL?

我試圖確定運行我的腳本的人是否在 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

這是一個解釋: https://stackoverflow.com/a/13542854/226473

相關內容