フォーラムで英語で話して申し訳ありません。オレンジパイコンピュータで低クロックを無効にする方法を見つけました。
#!/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行目しかありません。だから問題はスクリプトの最後にあります。スクリプトの最後の行にはペアのない引用符があり、それを修正する必要があります。