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

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.mrgr.cn/news/16213.html

相关文章:

  • YOLOv9改进策略【模型轻量化】| 利用PP-LCnet改进RepNCSPELAN4
  • shell脚本--正则表达式
  • 量化投资策略与技术学习PART1.1:量化选股之再谈多因子模型(二)
  • JDBC的使用及案例
  • 全国设计院排名 工程项目管理营业额二〇二三年排名
  • 基于STM32的RFID高速收费系统(论文+源码+实物)
  • Java 虚方法表(虚函数)
  • JS设计模式之“名片设计师” - 工厂方法模式
  • APP 数据抓取 - Charles 抓包工具的使用(Charles 端口配置、CA 证书配置、Charles Android 模拟器配置)
  • 又一个免费代码生成工具
  • gpt开发
  • JavaScript的对象详解
  • C--四种排序方法的补充
  • 足底筋膜炎怎么治疗效果好
  • 掌握AIGC的魔法:编写高质量提示词的艺术与科学
  • 【C++11及其特性】左值和右值
  • 高级字符串算法
  • 算法设计与分析:实验四 动态规划—鸡蛋掉落问题
  • Java之初始泛型
  • Android 15 大变更:支持 16K 内存分页,所有 native app 必须重编译~