Bash 오류: "[y 명령을 찾을 수 없습니다."

Bash 오류: "[y 명령을 찾을 수 없습니다."

이 스크립트가 올바르게 작동하도록 하려고 하는데 ./passmark.sh line 7: [y command not found.

여기 내 스크립트가 있습니다

#!/bin/bash
# A simple script to ask a user for a pass mark and then display a grade
# the grade will be either an A, B, C, D or F
#
CONT=y
echo
while [$CONT = "y" ]
do
        echo -e "\"Please enter a pass mark: \c \""
        read MARK
        if [$MARK -ge "0" -a $MARK -lt "50"] ; then
                echo -e "\n \"F\" \n"
        elif [$MARK -ge "50" -a $MARK -lt "60"] ; then
                echo -e "\n \"D\" \n"
        elif [$MARK -ge "60" -a $MARK -lt "70"] ; then
                echo -e "\n \"C\" \n"
        elif [$MARK -ge "70" -a $MARK -lt "80"] ; then
                echo -e "\n \"B\" \n"
        elif [$MARK -ge "80" -a $MARK -lt "100"] ; then
                echo -e "\n \"A\" \n"
        else
                echo -e "\"Invalid input!!\n \""
        fi
        echo -e "\"Would you like to enter another pass mark? (y/n) \c \""
        read REPLY
        case "$REPLY" in
                n | N | no | No | NO ) CONT=n ;;
                *) ;;
        esac
echo
done 

답변1

[and 주위에 공백이 필요합니다 ]. 예:

if [ "$MARK" -ge 0 -a "$MARK" -lt 50 ]; then

작성한 방식에 따르면 $MARKis 일 때 명령 에 인수로 전달하는 대신 명령 7을 실행하려고 시도합니다 ( 는 의 짧은 이름일 뿐입니다 ).[77[[test

또한 변수를 인용해야 합니다. 그렇지 않으면 사용자가 빈 줄이나 여러 단어를 입력하면 테스트 표현식이 올바르게 구문 분석되지 않습니다.

관련 정보