Shell 作为一门编程语言,具有一系列的语法规则。 本文介绍了其中的变量和运算符中基础的内容。
变量
Shell 中有三种类型的变量:
- 自定义变量
- 环境变量
- 系统环境变量
它们的区别主要是作用域不同:
- 自定义变量 -> 作用域为当前 shell
- 环境变量 -> 作用域为当前 shell 及其子 shell
- 系统环境变量 -> 作用域为所有 shell
详细介绍这三类变量
1、自定义变量
- 声明与赋值:使用
=(等号左右不能有空格)- 指定某个类型:
- 指定变量为整型:
let total=page_sizedeclare -i total=page_size
- 指定变量为整型:
- 指定某个类型:
- 自定义变量的类型:
- 字符串类型(默认)
- 整型
- 浮点型
- 日期型
2、环境变量
- 声明(导出):
export totaldeclare -x total
3、系统环境变量
- 声明方式:启动加载,也就是一开始就存在了
- 系统环境变量以
$开头:$0、$1、$2……$*:$0是当前 shell 名称/脚本名称,$1、$2等可以获取到传入参数,$*获取传入脚本的所有参数$#:获取传入脚本的参数数量$?:获取上一条命令执行的状态码$HOME:获取用户主文件夹路径$USER:获取用户名$PS1:获取命令提示符的内容$PATH:获取全局命令的搜索路径
声明变量的一种命令:declare
- declare 命令的选项:
-:给变量设定类型属性-a:将变量声明为数组类型-i:将变量声明为整数型-x:将变量声明为环境变量
+:取消变量的类型属性
运算符
- shell 中有许多种类的运算符,包括比较常见的算数运算符、逻辑运算符、比较运算符,和比较特殊的圆括号、命令连接等
1、圆括号
(()):表示这是一个算数运算- 比如:
foo=$((1+2))
- 比如:
():执行命令- 比如:
$(ls -a)
- 比如:
2、命令连接
cmd1 || cmd2:cmd1 执行完且返回码非0(表示失败),则继续执行 cmd2cmd1 && cmd2:cmd1 执行完且返回码为0(表示成功),则继续执行 cmd2cmd1 ; cmd2:cmd1、cmd2 串行执行cmd1 & cmd2:cmd1、cmd2 并行执行