首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找匹配的“”时意外的EOF

寻找匹配的“”时意外的EOF
EN

Unix & Linux用户
提问于 2020-04-22 05:26:33
回答 1查看 11.8K关注 0票数 0

对不起,在论坛上我发现了如何在橙色pi pc中禁用owerclocking的修复方法。

代码语言:javascript
复制
 #!/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»

我犯了这个错误

代码语言:javascript
复制
./fix.sh: line 53: unexpected EOF while looking for matching `"'
./fix.sh: line 59: syntax error: unexpected end of file

你能帮我解决这个问题吗?这不是我的剧本

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-04-22 05:50:09

欢迎来到Unix & Linux StackExchange!

代码语言:javascript
复制
./fix.sh: line 53: unexpected EOF while looking for matching `"'

这个错误消息可能很棘手,因为它指示脚本的第53行,这是shell注意到双引号出现问题的地方。通常,实际错误是在此之前某个地方缺少双引号。

文章中的代码格式已经在试图帮助您。注意,在您发布的代码中,最初只以红色显示双引号(")中的内容。但是在这一行之后,其他的东西都变红了,双引号中的东西都是黑色或蓝色的:

代码语言:javascript
复制
trap «rm \»${MyTmpFile}\"; exit 0" 0 1 2 3 15

配色方案的改变意味着这一行有一个未配对的双引号(不是用反斜杠转义)。它看起来像是从«.»-style引号到标准双引号的不完全转换。

这一行可能应该是:

代码语言:javascript
复制
trap "rm \"${MyTmpFile}\"; exit 0" 0 1 2 3 15

脚本中的所有«.»-style引号可能也应该转换为常规双引号。

在编写脚本时,永远不要使用编辑器将常规单引号或双引号替换为任何类型的“智能引号”。这样的替换常常会破坏脚本。如果您的编辑器这样做,了解如何关闭“智能引号”功能。

代码语言:javascript
复制
./fix.sh: line 59: syntax error: unexpected end of file

这条消息告诉您第59行的一个问题,但是脚本只有58行。所以问题就在脚本的末尾。脚本的最后一行有一个未配对的引号,应该是固定的。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/581686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档