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
견적 누락