![간단한 if/else가 작동하지 않음](https://linux55.com/image/95179/%EA%B0%84%EB%8B%A8%ED%95%9C%20if%2Felse%EA%B0%80%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%8C.png)
한시간 동안 이것저것 살펴봤는데 뭐가 문제인지 알 수가 없네요. 어떤 이유로 else 문이 작동하지 않습니다.
#!/bin/bash
if [ $#=3 ]
then
echo $*
else
echo "error" 1>&2
exit
fi
답변1
문제는 다음 줄에 있습니다.
if [ $#=3 ]
주위에 공백이 없으므로 =
다음을 수행해야 합니다.
if [ -n $#=3 ]
test는 항상 true =3
이므로 else
절대 실행되지 않습니다.
다음 주위에는 공백을 사용해야 합니다 =
.
if [ $# = 3 ]
단어 분리 및 경로 이름 확장을 피하기 위해 변수 확장 시 큰따옴표를 사용할 수도 있지만 이 경우 꼭 필요한 것은 아닙니다 $#
.