간단한 if/else 문이 작동하지 않습니다.

간단한 if/else 문이 작동하지 않습니다.

나는 이 기본 코드를 쉘 스크립트에서 작동시키려고 오랫동안 노력해 왔지만 소용이 없었습니다. 코드가 작동하지 않습니다!

read dec
if [ dec="Y"]||[dec="Y"]||[dec="y" ]; then
let repeat=1;
else
let repeat=0;
fi
done

답변1

[]및 문자는 연산자가 아닌 명령이므로 양쪽에 공백이 필요합니다 .

그것도 필요하지 않으며 변수(예: )로 let읽어야 합니다 .dec$dec

테스트를 위해 변수를 대문자로 표시할 수도 있으므로 대문자(두 번!) 및 소문자 결과를 모두 테스트할 필요가 없습니다.

done루프가 없기 때문에 결국에는 필요하지 않습니다.

read dec
if [[ "${dec^}" = "Y" ]]; then
  repeat=1
else
  repeat=0
fi

관련 정보