한시간 동안 이것저것 살펴봤는데 뭐가 문제인지 알 수가 없네요. 어떤 이유로 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 ]
단어 분리 및 경로 이름 확장을 피하기 위해 변수 확장 시 큰따옴표를 사용할 수도 있지만 이 경우 꼭 필요한 것은 아닙니다 $#
.