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

shell脚本编写注意事项

shell参数特殊字符:

在Shell(如Bash)中,有许多特殊字符被用来控制命令的执行流程、重定向输出、进行参数扩展等。了解这些特殊字符对于编写有效的Shell脚本和命令行操作至关重要。以下是Shell中的一些主要特殊字符:

  1. 空格 ( )

    • 分隔命令及其参数。
  2. 制表符 (\t)

    • 类似于空格,用于分隔命令和参数,但通常用于更宽的间隔。
  3. 换行符 (\n)

    • 结束当前命令并开始新行,但Shell脚本中可以使用反斜杠 \ 在行尾来实现跨行书写命令。
  4. 管道 (|)

    • 用于连接两个命令,前一个命令的标准输出作为后一个命令的标准输入。
  5. 重定向 (>, >>)

    • > 将命令的输出重定向到指定的文件,覆盖任何现有内容。
    • >> 将命令的输出追加到指定的文件后面。
  6. 输入重定向 (<)

    • 从文件读取输入,而不是标准输入(通常是键盘)。
  7. 后台运行 (&)

    • 让命令在后台运行。
  8. 分号 (;)

    • 连接命令序列,每个命令顺序执行,无论前一个命令成功与否。
  9. (&&)

    • 连接命令序列,只有当第一个命令成功时才执行下一个命令。
  10. (||)

    • 连接命令序列,只有当第一个命令失败时才执行下一个命令。
  11. 注释 (#)

    • 表示该行剩余部分为注释,不会被执行。
  12. 双引号 (")

    • 保护字符串中的空格和其他特殊字符,允许变量替换。
  13. 单引号 (')

    • 完全保留字符串内容,不允许变量替换。
  14. 反斜杠 (\)

    • 用于转义紧随其后的字符,使其被视为普通字符而非特殊字符。
  15. 美元符号 ($)

    • 用于变量引用和命令替换。
  16. 星号 (*)

    • 用于文件名模式匹配(通配符)。
  17. 问号 (?)

    • 用于文件名模式匹配,匹配任意单个字符。
  18. 方括号 ([, ])

    • 用于创建更复杂的文件名模式匹配条件。
  19. 左大括号 ({)

    • 与右大括号一起,用于创建范围或列表。
  20. 右大括号 (})

    • 结束范围或列表定义。
  21. 分组 ((, ))

    • 用于将命令组合在一起形成复合命令。
  22. 波浪线 (~)

    • 代表用户的主目录。
  23. 叹号 (!)

    • 用于历史扩展和事件驱动的命令查找。
  24. 尖括号 (<>)

    • 用于非标准的输入/输出重定向。

当编写Shell脚本或命令时,确保理解这些特殊字符的作用和用法,以便正确地构造你的命令和脚本。

sed 

注意事项:

[root@gateway-1-2 seatunnel]# cat lyl.conf 
abcde
select * from where=$where
abcde
[root@gateway-1-2 seatunnel]# sed -e 's/$where/(t1.part_id=\'2024-07-16\' and user_group_id=\'54\')/g' lyl.conf > lyltmp.conf
-bash: syntax error near unexpected token `)'
[root@gateway-1-2 seatunnel]# sed -e 's/$where/(t1.part_id="2024-07-16" and user_group_id="54")/g' lyl.conf > lyltmp.conf
[root@gateway-1-2 seatunnel]# cat lyltmp.conf 
abcde
select * from where=(t1.part_id="2024-07-16" and user_group_id="54")
abcde


http://www.kler.cn/a/284075.html

相关文章:

  • D67【python 接口自动化学习】- python基础之数据库
  • Matlab自学笔记四十一:介绍日期时间型的显示格式:年‘y‘ 月‘M‘ 日‘d‘ 周‘e‘ 时‘h‘ 分‘m‘ 秒‘s‘
  • 【Playwright + Python】系列(十)利用 Playwright 完美处理 Dialogs 对话框
  • mysql 快速解决死锁方式
  • 【GPTs】MJ Prompt Creator:轻松生成创意Midjourney提示词
  • 力扣每日一题 3258. 统计满足 K 约束的子字符串数量 I
  • 《计算机操作系统》(第4版)第12章 保护和安全 复习笔记
  • HTTPS一定安全吗
  • 综合布线智能运维管理方案
  • 【Spring Boot 3】【Web】ProblemDetail
  • 【K8s】专题十二(4):Kubernetes 存储之 StorageClass
  • Python通过读取配置文件开发数据库链接脚本工具(统一封装 mysql,mongodb,redis,达梦,人大进仓等主流国内外数据库)
  • 【Nginx】若依用nginx部署,prod-api没有成功转发到8080端口
  • 8.30工作笔记
  • Flask蓝图的作用
  • RTPS协议之PSM:UDP/IP
  • CentOS7安装docker小记
  • Spark SQL Hints:优化查询性能的利器
  • 基于 Transformer 的深度学习混合架构用于相位展开
  • ctfshow之web55~web57(无字母的rce)
  • Leetcode 第 136 场双周赛题解
  • MyBatis之XML配置文件(一)
  • IT服务器安全规范 2024.08
  • Nginx: https解决安全问题
  • 对各项数据的统计汇总,集中展示,便于查看厂区情况的智慧物流开源了。
  • 【机器学习】决策树------迅速了解其基本思想,Sklearn的决策树API及构建决策树的步骤!!!