일치하는 ""를 찾는 동안 예기치 않은 EOF가 발생했습니다.

일치하는 ""를 찾는 동안 예기치 않은 EOF가 발생했습니다.

포럼에서 영어로 말해서 죄송합니다. 오렌지 파이 컴퓨터에서 낮은 클럭을 비활성화하는 방법을 찾았습니다.

 #!/bin/bash 

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

if [ "$(id -u)" != «0» ]; then 
echo «This script must be executed as root. Exiting» >&2 
exit 1 
fi 

Fex2Bin="$(which fex2bin)" 
if [ «X${Fex2Bin}» = «X» ]; then 
apt-get -f -q -y install sunxi-tools 
fi 

Path2ScriptBin="$(df | awk -F" " '/^\/dev\/mmcblk0p1/ {print $6}')" 
if [ ! -f "${Path2ScriptBin}/script.bin" ]; then 
echo «Can not find script.bin. Ensure boot partition is mounted» >&2 
exit 1 
fi 

MyTmpFile="$(mktemp /tmp/${0##*/}.XXXXXX)"
trap «rm \»${MyTmpFile}\"; exit 0" 0 1 2 3 15 

bin2fex <"${Path2ScriptBin}/script.bin" | grep -v "^LV" | grep -v "^max_freq" | grep -v "^min_freq" | grep -v "^extremity_freq" >"${MyTmpFile}" 
if [ $? -ne 0 ]; then 
echo «Could not convert script.bin to fex. Exiting» >&2 
exit 1 
fi 
cp -p "${Path2ScriptBin}/script.bin" "${Path2ScriptBin}/script.bin.bak" 

sed -i '/\[dvfs_table\]/a \ 
extremity_freq = 1296000000\ 
max_freq = 1200000000\ 
min_freq = 480000000\ 
LV_count = 7\ 
LV1_freq = 1296000000\ 
LV1_volt = 1320\ 
LV2_freq = 1200000000\ 
LV2_volt = 1240\ 
LV3_freq = 1104000000\
LV3_volt = 1180\ 
LV4_freq = 1008000000\ 
LV4_volt = 1140\ 
LV5_freq = 960000000\ 
LV5_volt = 1080\ 
LV6_freq = 816000000\ 
LV6_volt = 1020\ 
LV7_freq = 480000000\ 
LV7_volt = 980' "${MyTmpFile}" 

fex2bin "${MyTmpFile}" "${Path2ScriptBin}/script.bin" >/dev/null 
if [ $? -ne 0 ]; then 
mv "${Path2ScriptBin}/script.bin.bak" "${Path2ScriptBin}/script.bin" 
echo «Writing script.bin went wrong. Nothing changed» >&2 
exit 1 
fi 

echo «Successfully repaired broken overvolting/overclocking settings. Reboot necessary for changes to take effect»

이 오류가 발생했습니다.

./fix.sh: line 53: unexpected EOF while looking for matching `"'
./fix.sh: line 59: syntax error: unexpected end of file

문제를 해결하도록 도와주실 수 있나요? 이건 내 대본이 아니야

답변1

Unix 및 Linux StackExchange에 오신 것을 환영합니다!

./fix.sh: line 53: unexpected EOF while looking for matching `"'

이 오류 메시지는 쉘이 큰따옴표 문제를 발견한 스크립트의 53번째 줄을 나타내기 때문에 까다로울 수 있습니다. 일반적으로 실제 오류는 어딘가에 누락된 큰따옴표입니다.그것 앞에.

게시물의 코드 형식이 이미 도움이 되고 있습니다. 올려주신 코드에서는 "처음에는 큰따옴표( ) 안의 내용만 빨간색으로 표시되어 있으니 참고하시기 바랍니다. 하지만 이 줄 뒤에는그 밖의 모든 것빨간색으로 바뀌고 큰따옴표 안의 내용은 검은색이나 파란색이 됩니다.

trap «rm \»${MyTmpFile}\"; exit 0" 0 1 2 3 15

색 구성표의 변경은 해당 줄에 짝이 없는 큰따옴표(백슬래시로 이스케이프되지 않음)가 있음을 의미합니다. «... 스타일 따옴표에서 표준 큰따옴표로의 »불완전한 변환 처럼 보입니다 .

이 줄은 아마도 다음과 같을 것입니다:

trap "rm \"${MyTmpFile}\"; exit 0" 0 1 2 3 15

스크립트의 모든 ... 스타일 따옴표 «도 일반 큰따옴표로 변환되어야 합니다.»

스크립트를 작성할 때 일반 작은따옴표나 큰따옴표를 어떤 종류의 "스마트 따옴표"로 바꾸는 편집기를 사용하지 마십시오. 이러한 대체는 일반적으로 스크립트를 손상시킵니다. 편집자가 이 작업을 수행하는 경우 스마트 인용 기능을 끄는 방법을 알아보세요.


./fix.sh: line 59: syntax error: unexpected end of file

메시지는 59행에 문제가 있음을 알려주는데 스크립트에는 58행만 있습니다. 그래서 문제는 스크립트 끝에 있습니다. 스크립트의 마지막 줄에는 짝이 없는 따옴표가 있는데, 이를 수정해야 합니다.

관련 정보