变量
自定义变量(类型 ),当前shell(作用域),=(声明方式),字符串、整形、浮点型、日期型(规范)
环境变量(类型 ),当前shell及其子shell(作用域),export、declare -x(声明方式)
系统环境变量(类型 ),所有shell(作用域),启动加载(声明方式)
自定义变量
*(选项),给变量设定类型属性(含义)
*(选项),取消变量的类型属性(含义)
-a(选项),将变量声明为数组类型(含义)
-i(选项),将变量声明为整数型(含义)
-x(选项),将变量声明为环境变量(含义)
-r(选项),将变量声明为只读变量(含义)
-p(选项),显示指定变量的被声明的类型(含义)
系统环境变量
$0(变量名),当前shell名称/脚本名称(含义), 2等可以获取到传入参数(常见操作)
$#(变量名),传入脚本的参数数量(含义),if[$ #-gt 1](常见操作)
$*(变量名),传入脚本的所有参数(含义)
$?(变量名),上条命令执行的状态码(含义),if[$? -eq 0]
$PS1(变量名),命令提示符(含义),export PS1 = "\u@\h \w"
$HOME(变量名),用户主文件夹(含义),cd~
$PATH(变量名),全局命令的搜索路径(含义),PATH=$PATH:[新增路径]
运算符和引用
算数运算符(类型)+-*/|&(符号),常规运算(作用)
逻辑运算符(类型),|| && !(符号)
比较运算符(类型),== != < >(符号)
引号(类型),双引号""、单引号''、反引号``(符号)
圆括号(类型),(()),()(符号)
命令连接(类型),||、&&、;(符号)
后台运行(类型),&(符号)
管道
管道与管道符|,作用是将前一个命令的结果传递给后面的命令
语法:cmd1 | cmd2
要求:管道右侧的命令必须能接受标准输入才行
注意:管道命令仅仅处理stdout,对于stderr会予以忽略,可以使用set -o pipefail设置shell遇到管道错误退出
重定向
输出重定向符号
>: 覆盖写入文件
>>: 追加写入文件
2>: 错误输出写入文件
&>: 正确和错误输出统一写入到文件中
输入重定向符号
<
<<