转 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行就开始标注红线了。
###
感谢 我要刷满TD线
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