当前位置: 首页 > news >正文

shell脚本定义特殊字符导致执行mysql文件错误的问题

       记得有一次版本发布过程中有提供一个sh脚本用于一键执行sql文件,遇到一个shell脚本定义特殊字符的问题,sh脚本的内容类似以下内容:

# 数据库ip地址
ip="127.0.0.1"
# 数据库密码
cmdb='cmdb!@#$!'
sm='sm!@#$!'# 执行脚本文件(参照样本)
mysql –ucmdb –p$cmdb -Dcmdb<./xxx_xxx1.sql
mysql –ucmdb –p$cmdb -Dcmdb<./xxx_xxx2.sql
mysql –usm –p$sm -Dsm<./xxx_xxx2.sql
mysql –usm –p$sm -Dsm<./xxx_xxx2.sql

       由于现场一线人员设置的密码比较复杂,因此包含许多特殊字符,最后在执行sh脚本的时候频繁报数据库密码错误的错误。
       经过排查验证,通过mysql客户端验证密码是正确的,但是通过我们提供的sh脚本执行时却一直报错,最后排查到是shell脚本将特殊字符转义导致运行失败了,例子如下:(定义一个变量并且输出)
在这里插入图片描述
通过执行上述脚本,会发现字符串中后面的$!字符丢失了。
在这里插入图片描述
最后将双引号改为单引号,避免字符串转义即可,如下:
在这里插入图片描述

http://www.lryc.cn/news/509325.html

相关文章:

  • 【C++ 基础】构造和析构
  • C语言项目 天天酷跑(上篇)
  • Python读取Excel批量写入到PPT生成词卡
  • NS3学习——tcpVegas算法代码详解(1)
  • 相机雷达外参标定综述“Automatic targetless LiDAR–camera calibration: a survey“
  • 【Java基础-27】Java中的访问修饰符:分类、作用及应用场景
  • Redis+注解实现限流机制(IP、自定义等)
  • SAP从入门到放弃系列之委外分包(Subcontracting)-Part1
  • nlp新词发现——浅析 TF·IDF
  • WebGL2示例项目常见问题解决方案
  • 鸿蒙元服务从0到上架【第三篇】(第二招有捷径)
  • Jimureport h2命令执行分析记录
  • vue 集成 webrtc-streamer 播放视频流 - 解决阿里云内外网访问视频流问题
  • 进网许可认证、交换路由设备检测项目更新25年1月起
  • Provides transitive vulnerable dependency maven 提示依赖存在漏洞问题的解决方法
  • WebAuthn 项目常见问题解决方案
  • LeetCode 844. 比较含退格的字符串 (C++实现)
  • Python8-写一些小作业
  • C++ STL vector基本原理和用法
  • 【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
  • 【人工智能-初级】基于用户的协同过滤推荐算法
  • 如何识别钓鱼邮件和诈骗网站?(附网络安全意识培训PPT资料)
  • Rust 在前端基建中的使用
  • 【人工智能】基于Python和OpenCV实现实时人脸识别系统:从基础到应用
  • Python 自动化 打开网站 填表登陆 例子
  • 【Chrome】浏览器提示警告Chrome is moving towards a new experience
  • 网络下载ts流媒体
  • iDP3复现代码模型训练全流程(一)——train_policy.sh
  • 重温设计模式--单例模式
  • 【人工智能】Python中的机器学习管道:如何用scikit-learn构建高效的ML管道