shell脚本编程
声明:首行shebang机制
变量
变量类型
变量类型:
内置变量 : 如 PS1 , PATH ,HISTSIZE
用户自定义变量
不同变量存放数据不同,决定了以下
1.数据存储方式
2.参与的运算
3.表示的数据范围
变量数据类型:
1.字符
2.数值:整型,浮点型,bash不支持浮点数
变量的定义和引用:
变量的生效范围等标准划分变量类型
1.普通变量:生效范围当前shell进程,对当前shell之外的其它shell进程,包括当前shell进程的shell子进程均无效
2.环境变量:生效范围为当前shell进程及其子进程
3.本地变量:生效范围为当前shell进程的某代码片段.
变量赋值
value可以是一下多种形式
范例:
注意:变量赋值时临时生效的,当退出终端后,变量会被删除,无法永久保存,脚本中的变量也会随着脚本的结束而结束.
变量引用
弱引用:其中的变量会被替换为变量值.
强引用: 其中的变量不会被替换为变量值,保持原字符串.
范例:
显示已定义的所有变量
范例:
删除变量
示例:
环境变量
环境变量可以使子进程继承父进程的变量,但是父进程无法继承子进程,同时一旦子进程修改变量,则子进程会将新定义的变量赋值给孙子进程.
变量声明和赋值
变量引用
显示所有环境变量
删除变量
bash内创建的环境变量
只读变量
只读变量:只能声明定义,但后续不能修改删除
声明只读变量:
查看只读变量
位置变量
位置变量:在bash shell中的内置变量,在脚本代码中调用通过命令行传递给脚本的参数
清空所所有位置变量
退出状态码变量
范例:
用户可以在脚本中使用以下命令自定义退出状态码
注意:
1.脚本中一旦遇到exit命令,脚本会立即终止;终止退出状态码取决于exit命令后面的数字
2.如果为给脚本指定退出状态码,整个脚本退出状态码取决于脚本中执行的最后一条命令状态
展开命令执行
展开命令执行顺序
防止扩展
范例:
加引号来防止扩展
变量扩展
脚本安全和set
$-
h: hashall - 启用哈希表功能,使得命令查找更快。 | |
i: interactive - 表示这是一个交互式 shell。 | |
m: monitor - 启用作业控制。 | |
B: braceexpand - 启用大括号扩展。 | |
H: histexpand - 启用历史扩展(例如 ! 符号的使用)。 |
set
示例:
printf
示例: