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脚本将特殊字符转义导致运行失败了,例子如下:(定义一个变量并且输出)

通过执行上述脚本,会发现字符串中后面的$!字符丢失了。

最后将双引号改为单引号,避免字符串转义即可,如下:

相关文章:
shell脚本定义特殊字符导致执行mysql文件错误的问题
记得有一次版本发布过程中有提供一个sh脚本用于一键执行sql文件,遇到一个shell脚本定义特殊字符的问题,sh脚本的内容类似以下内容: # 数据库ip地址 ip"127.0.0.1" # 数据库密码 cmdbcmdb!#$! smsm!#$!# 执行脚本文件(参…...
【C++ 基础】构造和析构
构造和析构 1.养成一个习惯,只要是变量,定义后要初始化 2.在C当中要完成对象的初始化工作,可以借助构造来完成,如果要完成对象的清理操作,借助析构来完成 3.在C里面对于对象的初始化有4种方式: 1、直接…...
C语言项目 天天酷跑(上篇)
前言 这里讲述这个天天酷跑是怎么实现的,我会在天天酷跑的下篇添加源代码,这里会讲述天天酷跑这个项目是如何实现的每一个思路,都是作者自己学习于别人的代码而创作的项目和思路,这个代码和网上有些许不一样,因为掺杂了…...
Python读取Excel批量写入到PPT生成词卡
一、问题的提出 有网友想把Excel表中的三列数据,分别是:单词、音标和释义分别写入到PPT当中,每一张PPT写一个单词的内容。这种批量操作是python的强项,尤其是在办公领域,它能较好地解放双手,读取Excel表后…...
NS3学习——tcpVegas算法代码详解(1)
目录 一、源码 二、详解 1.定义日志和命名空间 2.注册Typeld类:TcpVegas和GetTypeId方法的实现 3.构造函数和析构函数 4.TcpVegas类中成员函数 (1) Fork函数 (2) PktsAcked函数 (3) EnableVegas函数 (4) DisableVegas函数 一、源码 /* -*- Mode:C; c-file-style:&qu…...
相机雷达外参标定综述“Automatic targetless LiDAR–camera calibration: a survey“
相机雷达外参标定综述--Automatic targetless LiDAR–camera calibration: a survey 前言1 Introduction2 Background3 Automatic targetless LiDAR–camera calibration3.1 Information theory based method(信息论方法)3.1.1 Pairs of point cloud and image attributes(属性…...
【Java基础-27】Java中的访问修饰符:分类、作用及应用场景
在Java编程中,访问修饰符(Access Modifiers)是控制类、方法、变量和构造函数访问权限的关键工具。通过合理使用访问修饰符,可以有效地封装代码,保护数据,并确保代码的安全性和可维护性。本文将详细介绍Java…...
Redis+注解实现限流机制(IP、自定义等)
简介 在项目的使用过程中,限流的场景是很多的,尤其是要提供接口给外部使用的时候,但是自己去封装的话,相对比较耗时。 本方式可以使用默认(方法),ip、自定义参数进行限流,根据时间…...
SAP从入门到放弃系列之委外分包(Subcontracting)-Part1
以前写过一篇委外相关的文章,没有很详细的写。只是一个概念的概述ERP实施-委外业务-委外采购业务 最近看PA教材,遇到了这块内容,就再详细的整理一下SAP关于委外的理论知识。 文章目录 概述分包和物料需求计划 (MRP)委外分包订单分包委外业务…...
nlp新词发现——浅析 TF·IDF
传统nlp任务处理文本及其依赖已有的词表,只有在词表里出现的词才能被识别并加以处理。但这也带来了一些问题: 假设没有词表,如何从文本中发现新词? 随着时间推移,新词会不断出现,固有词表会过时࿰…...
WebGL2示例项目常见问题解决方案
WebGL2示例项目常见问题解决方案 webgl2examples Rendering algorithms implemented in raw WebGL 2. [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/we/webgl2examples 项目基础介绍 WebGL2示例项目(https://github.com/tsherif/webgl2examples.gi…...
鸿蒙元服务从0到上架【第三篇】(第二招有捷径)
第一招:开始发布元服务 AppGallery 上传通过IDE生成的图标,后面按照步骤填写 后台有隐私政策链接生成处,前往填写生成 第二招:用户协议 对于没有服务器或者是需要极速开发的开发者,可通过gitee生成用户协议&…...
Jimureport h2命令执行分析记录
首先找testConnection接口,前面进行了jimureport-spring-boot-starter-1.5.8.jar反编译查找,接口找到发现请求参数是json var1是JmreportDynamicDataSourceVo类型,也就是如上图的dbSource,根据打印的结果可以知道这里是local cac…...
vue 集成 webrtc-streamer 播放视频流 - 解决阿里云内外网访问视频流问题
资料: 史上最详细的webrtc-streamer访问摄像机视频流教程-CSDN博客 webrtc目录 前端集成 html文件夹里的webrtcstreamer.js,集成到前端,可以访问webrtc,转换rtsp为webrtc视频流,在前端video中播放 <videoref&quo…...
进网许可认证、交换路由设备检测项目更新25年1月起
实施时间 2025年1月1日起实施 涉及设备范围 核心路由器、边缘路由器、以太网交换机、三层交换机、宽带网络接入服务器(BNAS) 新增检测依据 GBT41266-2022网络关键设备安全检测方法交换机设备 GBT41267-2022网络关键设备安全技术要求交换机设备 GB/…...
Provides transitive vulnerable dependency maven 提示依赖存在漏洞问题的解决方法
问题描述 如下图所示,对于 java 项目某些依赖,IDEA 提示,引用了含有漏洞的依赖。如果是单个依赖,可以考虑直接升级版本即可。但是对于传递性依赖,比如 flink 项目中,依赖的部分模块,它们自己依…...
WebAuthn 项目常见问题解决方案
WebAuthn 项目常见问题解决方案 webauthn Webauthn / passkeys helper library to make your life easier. Client side, server side and demo included. [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/webaut/webauthn 项目基础介绍 WebAuthn 项目是一个开源…...
LeetCode 844. 比较含退格的字符串 (C++实现)
1. 题目描述 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 1: 输入:s …...
Python8-写一些小作业
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化 python基础8-灵活运用顺序、选择、循环结构 写一些小练习题目1、给一个半径,求圆的面积和周长,…...
C++ STL vector基本原理和用法
文章目录 基本原理1. 数据存储结构2. 内存管理机制3. 迭代器实现原理4. 元素访问原理5. 插入和删除元素原理 常见用法1. 概述2. 包含头文件3. 定义和初始化4. 常用成员函数5. 迭代器6. 内存管理与性能特点7. 应用场景 基本原理 以下是关于 std::vector 的基本原理讲解…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...
