Bash의 if 문 조건 문제

Bash의 if 문 조건 문제

다음 bash 스크립트가 있습니다.

#!/bin/bash
  
echo "Enter your name: "
read name

if [ ${name}=="sam" ]  
then
        echo "Hi Sam!"
else
        echo "Who the hell are you?"
fi

입력한 이름이 "sam"이 아닌 경우 "도대체 당신은 누구입니까?"를 표시하고 싶습니다. 그런데 임의의 문자열을 입력해도 "Hi Sam!"이 표시됩니다.

여기서 문제가 무엇입니까?

답변1

[ ]및 와 같은 조건식 사용에 대한 bash 튜토리얼과 매뉴얼을 읽어보세요 test.

간단히 말해서:

  1. 굳이 사용할 필요는 없고 ==, =그것만으로도 충분합니다.
  2. 앞뒤에 공백을 추가해야 합니다 =. 그렇지 않으면 비교를 수행하는 대신 표현식의 오른쪽 부분을 왼쪽 부분에 할당하게 됩니다.
  3. 변수 참조

최종 결과:

if [ "${name}" = "sam" ]

관련 정보