[: 셸에 `]' 오류가 없습니다. []의 코드 앞뒤에 공백이 있습니다.

[: 셸에 `]' 오류가 없습니다. []의 코드 앞뒤에 공백이 있습니다.

암호:

if [ $mintemp -ge 15 && $maxtemp -le 28 ]; then echo "nice day"; fi

[와 $Mintemp, 28과 ] 사이에 이미 공백이 있습니다.

그런데 계속 오류가 발생하네요

답변1

&&인수 가 아니라 []( [실제로 프로그램이기 때문에) 첫 번째 명령이 성공하면 두 번째 명령을 실행하는 Bash 연산자입니다. 따라서 bash의 경우 스크립트는 다음과 같습니다.

if ([ $mintemp -ge 15) && ($maxtemp -le 28 ]; then echo "nice day"; fi)

이는 유효하지 않습니다. 하지만 다음과 같이 할 수 있습니다.

if [ $mintemp -ge 15 ] && [ $maxtemp -le 28 ]; then echo "nice day"; fi

관련 정보