随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

Linux:bash的细节——极其重要又极易出错

变量运算符

父shell 脚本总是运行在 子shell 环境中。子shell 只能看到 环境变量的副本,而不能看到父shell的 本地变量;父shell 看不见子shell的本地变量,但可以看见子shell导出的环境变量

大括号扩展{},优先级高于变量替换!左、右大括号{}和其中的各个内容之间必须紧紧相连,不能有空白;内容之间也必须通过逗号“,”紧紧相连!

shell变量默认类型是字符串,可以使用双引号“ "字符串" ”或单引号“ '字符串' ”来明确表示,二者的区别是双引号字符串支持$变量扩展!

变量扩展${}  左、右大括号{}和其中的变量标识符之间必须紧紧相连,不能有空白!默认,bash对变量的名称识别是字!

测试表达式运算符 “[ express ]” 必须和其他的express之间留有空白!

测试表达式运算符 “[ express ]” 必须和其他的express之间留有空白!另外,express中的运算符和变量之间必须留有空白,否则,你死了!

 

将变量作为数值类型进行运算 “$[express]”,express与两侧留不留空白均可!

“` 命令`”用来执行命令,获取命令的输出信息,命令和左右“`”符号之间可以留有空白!

跟在命令后面的不加引号的字符串会进行通配符“*、?”的替换,切记!如果不想使用引号,可以使用转义字符来转义这些通配符

 

 

 

默认,bash以一行为一个命令,依次执行。可以通过分号“;” 把多个命令写在一行,从左至右依次执行各个命令!

&&分隔符告诉bash,只有前面的命令执行成功才执行后面的命令;是if语句的 运算符形式

||分隔符告诉bash,只有前面的命令执行失败才执行后面的命令;是if语句的 运算符形式

case语句中的特殊运算符 “ 字符串) ” 和 break 语句运算符 “ ;; ”。 “ 字符串) ” 字符串和运算符之间不能有空白;break运算符则可以保留空白!

hereisdocument 运算符 “<<identity ..... identity”  类似于管道

posted on   jinzhenshui  阅读(503)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

点击右上角即可分享
微信分享提示