포럼에서 영어로 말해서 죄송합니다. 오렌지 파이 컴퓨터에서 낮은 클럭을 비활성화하는 방법을 찾았습니다.
#!/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행만 있습니다. 그래서 문제는 스크립트 끝에 있습니다. 스크립트의 마지막 줄에는 짝이 없는 따옴표가 있는데, 이를 수정해야 합니다.