$SHELL을 어떻게 사용하나요?

$SHELL을 어떻게 사용하나요?

내 스크립트를 실행하는 사람이 bash 쉘이나 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

관련 정보