基础命令
检查系统环境变量的命令
- set: 输出所有变量,包括全局变量和局部变量
- env:只显示全局变量
- declare:输出所有变量,如同set
- export:显示和设置环境变量值
撤销环境变量
- unset 变量名:删除变量或者函数
设置只读变量
- readonly name=“asd” : 只有shell结束,只读变量失效
基础符号
- 双引号:变量名会替换成变量值
- 单引号:不识别特殊语法
- 无引号:输入结果,但是不会将含有空格的字符串视为一个整体,如果其中有命令或变量会先把命令或者变量解析出来
- 反引号:反引号中执行命令的结果会保留下来
- $() :作用和反引号一样,比较直观,但是有些linux机不支持
- ${} : 获取变量的值等同于 $变量名
- [ ] : 条件框
特殊变量
特殊状态变量
- $? : 上一次命令执行状态的返回值 0 正确,非 0失败
- $$ : 当前shell的脚本进程号
- $! : 上一次后台进程的PID
- $_ :上一次命令的最后一个参数
特殊参数变量
- $0 : 执行脚本的名称
- $1-9 : 脚本执行时的参数1到9
- $# : 脚本执行时输入参数的个数
- $@ : 输入的参数的具体内容(将输入的参数作为一个多个对象,即是所有参数的一个列表)
- $* : 输入的参数的具体内容(将输入的参数作为一个单词)
条件判断
文件/文件夹判断
条件 | 说明 |
---|---|
-b file | 如果 FILE 存在且是一个块特殊文件则为真 |
-c file | 如果 FILE 存在且是一个字特殊文件则为真 |
-d file | 如果 FILE 存在且是一个目录则为真 |
-e file | 如果 FILE 存在则为真 |
-f file | 如果 FILE 存在且是一个普通文件则为真 |
-g file | 如果 FILE 存在且已经设置了SGID则为真 |
-k file | 如果 FILE 存在且已经设置了粘制位则为真 |
-p file | 如果 FILE 存在且是一个名字管道(F如果O)则为真 |
-r file | 如果 FILE 存在且是可读的则为真 |
-s file | 如果 FILE 存在且大小不为0则为真 |
… | … |
字符串判断
条件 | 说明 |
---|---|
-z string | 为空即为真 |
-n string | 非空即为真 |
string1 = string2 | string1 等于 string2 为真 |
string1 != string2 | string1 不等于 string2 为真 |
[string] | 与-n类似,非空即为真 |
数值判断
条件 | 说明 |
---|---|
-eq | 相等 |
-ne | 不相等 |
-gt | 大于 |
-ge | 大于等于 |
-lt | 小于 |
-le | 小于等于 |
复杂逻辑判断
条件 | 说明 |
---|---|
-a | 与 |
-o | 或 |
! | 非 |