>

3 또는 4 개의 인수를받는 할당에 대한 스크립트를 작성했습니다. 첫 번째 인수는 -e (인코딩) 또는 -d (디코딩)이며, 두 번째 인수는 인코딩/디코딩 키이며, 세 번째 인수는 출력 파일이며 4 번째 인수는 선택 사항이며 인코딩/디코딩 할 대상 파일이됩니다. 처음 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
    
    

    견적이 없습니다

관련 자료

  • 이전 networking - 루프백 테스트는 어떻게합니까?
  • 다음 systemd journald - / var/log/journal/upload에서 오는/var/log/journal/remote에서 저널 파일 이름 변경