转 sh脚本格式错误 unexpected EOF while looking for matching ``'

 ####sample 1

主机发生迁移,原有的主机的脚本打了一个tar 包,迁移到 新主机,解压,发现脚本里的中文无法显示,脚本可以正常运行。其他脚本显示正常。

 

 有问题阿脚本 file auto_cre_file.sh
auto_cre_file.sh: HTML document, ISO-8859 text


没有问题的脚本  file add_table_space_file.sh:
add_table_space_file.sh: Bourne-Again shell script, UTF-8 Unicode text executable, with very long lines

 

需要手工将文件格式从ISO-8859 转成UTF-8

 

尝试在LINUX  用 enca直接转UTF-8 ,无果。于是将文件转移到windows notepad++ , 然后强制换成UTF-8 格式,然后上传到linux 服务器上。

发现脚本可以显示中文,但是无法正常运行,报错分别如下:

报错如下: 坑爹的是,这个报错的行都在190行,和230行,实际上检查发现 原因是第三行的双引号在windows 转成 utf-8 时候发生了丢失。

 

auto_cre_file.sh: line 190: syntax error near unexpected token `('

auto_cre_file.sh: line 235: unexpected EOF while looking for matching `"'

 

发现过程,需要借助linux 工具的VIM ,记住是VIM ,而不是VI       《——重要

vim auto_cre_file.sh 可以看到里面标注红线的部分,对比正常的脚本,发现VIM 明显的颜色渐变,告诉哪一行有问题,可能都是有问题的部分,发现从第3行就开始标注红线了。

 

 

 

###

感谢 

 

sh脚本格式错误 unexpected EOF while looking for matching ``'

今天在编辑环境变量的时候报了一个错
unexpected EOF while looking for matching ``'

原因是因为shell 脚本设置了不正确的格式:

export PATH=~/flutter/bin:$PATH"
// 多了一个引号
// 或者使用了中文的符号
  • 1
  • 2
  • 3

解决: 修改为正确的英文符号或者去掉多余的符号或者中文不支持

我是个Coder界的小学生, 如有不足, 万望不吝指教

 

 

###sample 

 

将linux 脚本 sz/rz 到本地的时候,发现本地编辑器无法识别中文。

直接打开编辑器,全选,复制所有的行,粘贴到本地,在编辑,就会出现这个错误。

unexpected EOF while looking for matching

 

建议如下:

所有的文件,都直接复制整个文件,而不要从编辑器里复制所有行,在粘贴到目的地。

 

 

 

 #########sample

 


##问题
daily_report.sh: line 36: syntax error near unexpected token `echo'
daily_report.sh: line 36: ` echo $i'

 

##原代码

for i in `$ADMCMD/bpplclients | grep -v "Hardware" | (tee) | cut -c35-68` do
echo $i 

 

change to

for i in `$ADMCMD/bpplclients | grep -v "Hardware" | (tee) | cut -c35-68`
do
echo $i

posted @ 2020-11-02 17:27  feiyun8616  阅读(2197)  评论(0编辑  收藏  举报