예기치 않은 파일 끝 오류가 발생했지만 원인을 파악할 수 없는 것 같습니다.

예기치 않은 파일 끝 오류가 발생했지만 원인을 파악할 수 없는 것 같습니다.

3개 또는 4개의 인수를 사용하는 작업용 스크립트를 작성했습니다. 첫 번째 인수는 -e(인코딩) 또는 -d(디코드)이고, 두 번째 인수는 인코딩/디코딩 키이고, 세 번째 인수는 출력 이름입니다. 파일에서 네 번째 매개변수는 선택사항이며 인코딩/디코딩할 대상 파일이 됩니다. 처음 3개의 매개변수만 제공되는 경우 이 명령을 사용하려면 사용자 입력이 필요합니다 read.

그러나 스크립트를 실행하려고 하면 다음 오류가 발생합니다.

./cipher.sh: line 20: Unexpected EOF while looking for matching `''
./cipher.sh: line 26: syntax error: unexpected end of file

이것은 내 스크립트입니다.

#!/bin/bash

if [ "$#" -lt 3 ] || [ "$#" -gt 4 ]; then           #checks for 3 or 4 arguments, 
                                                    #error otherwise
    echo "Error: Need 3 or 4 arguments"
    exit 1
fi

if [ "$1" != "-e" ] && [ "$1" != "-d" ]; then       #Checks if the first argument 
                                                    #is -e or -d, error otherwise
    echo "Error: First argument must be -e or -d"
    exit 1
fi

if [ "$#" -eq 3 ]; then                            #If only 3 arguments are given
    read -p "Enter your input: " userinput
    echo $userinput | tr '[a-z]' '[A-Z]' > $3      #changes all letters to capital
    cat $3 | tr '[A-Z] '$2' > $3                   #Replaces all letters with 
                                                   #letters in key..
elif [ "$#" -eq 4]; then                           #if target file is specified..
    if [ -f $4 ]; then                             #If the file exists and is 
                                                   #regular..
        cat $4 | tr '[a-z]' '[A-Z]' > $3
        cat $3 | tr '[A-Z]' '$2' > $3              #(line 20)
    elif [ ! -f $4 ]; then                         #If the file does not exist
        echo "Error: Target file does not exist"
        exit 1
    fi
fi

답변1

찾기: 다음으로 시작하는 줄

cat $3

견적 누락

관련 정보