重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1065|回复: 0
打印 上一主题 下一主题

[工具] shell脚本报错syntax error near unexpected token `$'\r''

[复制链接]
跳转到指定楼层
楼主
发表于 2022-11-1 15:05:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jiawang 于 2022-11-4 09:07 编辑

这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n"
可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m
需要转换成linux/unix格式的"\n"

[root@sztech setup]# cat -v mysql.sql
[root@sztech setup]# cat -v mysql.sql
#!/bin/bash^M$
ipaddress=`ip a|grep "global"|awk '{print $2}' |awk -F/ '{print $1}'`^M$
file_output='mysql.html'^M$
td_str=''^M$
th_str=''^M$
myuser="root"^M$
mypasswd="Wangjia"^M$
myip="192.168.133.151"^M$
myport="3306"^M$
mysql_cmd="mysql -u${myuser} -p${mypasswd} -h${myip} -P${myport} --protocol=tcp --silent"^M$
#yum -y install bc sysstat net-tools^M$
#================================================SQL Segments========================================================================^M$
TOP_SCHEMA_SQL="select  table_schema,^M$
ROUND(SUM(TABLE_ROWS),2) as ALLSIZE_ROWS,^M$
ROUND(SUM(DATA_LENGTH+INDEX_LENGTH+DATA_FREE)/1024/1024,2) as ALLSIZE_MB,^M$
ROUND(SUM(DATA_LENGTH)/1024/1024,2) AS DATASIZE_MB,^M$
ROUND(SUM(INDEX_LENGTH)/1024/1024,2) AS INDEXSIZE_MB^M$
from information_schema.TABLES^M$
GROUP BY table_schema^M$
order by ALLSIZE_ROWS desc^M$
limit 10;^M$
"^M$

具体转换办法就是转换换行符
可以用sed命令处理一下文件,命令如下:
sed 's/\r//' 原文件 >转换后文件

[root@sztech setup]# sed -i 's/\r//g' mysql.sql




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-29 00:30 , Processed in 0.086967 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表