这里仅记录一下易忘且相对较重要的知识点
一、环境变量
可以直接在环境变量前加上美元符($)来使用这些环境变量
linux默认的umask值决定了新文件的默认权限设置,由于umask被设置成了022,所以创建的文件只有文件属主和属组才有读写权限,执行脚本之前要给文件加上执行权限chmod
二、用户变量
shell脚本允许在脚本中定义和使用自己的变量,定义变量允许临时存储数据并在整个脚本中使用。
用户变量区分大小写,可以是任何由字母数字下划线组成的文本字符串,长度不超过20个,赋值时等号两边不要出现空格。
![]()
$printenv HOME
$env HOME
$set
env 和 printenv不会对显示的变量进行排序,也不会输出局部变量和用户定义变量,set命令会显示出全局变量、局部变量以及用户定义变量,并按照字母顺序对结果进行排序。
export 局部变量名
将局部变量设置为全局变量(即在子进程创建的进程中也可见)
删除用户变量 :(在子shell中删除全局环境变量之后,该环境变量在父shell依然可用)
unset 变量名
数组变量:
环境变量可以作为数组使用,多个值可以单独引用,也可以作为整个数组来引用
![]()
![]()
三、命令替换
有两种方法可以将命令输出赋给变量:
1. 反引号 ( ` ) #反引号在键盘上与波浪线处同一位置
2. $( )格式
例: test=date
或 $( date )
![]()
四、输入输出重定向、管道
>
>>
<
<<
|
五、数学表达式
在bash中,再将一个数学运算结果赋给某个变量时,可以用美元符和方括号( $[ operation ] )将数学表达式围起来
但是bash shell数学符运算只支持整数运算(使用内建的bash计算器bc解决此问题)
scale变量控制计算结果保留的小数位数,默认为0
在脚本中使用bc格式
variable=$(echo " options; expression " | bc)
浮点运算是由内建变量scale控制的,必须将这个值设置为你希望在计算结果中保留的小数位数,否则无法得到预期的结果。scale的默认值是0,在scale被设置为4之后,bash计算器显示的结果包含四位小数。
bc计算器能够使用内联输入重定向,允许你直接在命令行中重定向数据,
variable=$( bc << EOF
options
statement
expressions
EOF
)
六、退出状态码
状态码 描述
0 命令成功结束
2 不适合的shell命令
126 命令不可执行(无权限)
127 没找到命令
128 无效的退出参数
128+x 与linxu信号x相关的严重错误
130 通过ctrl+c终止的命令
255 正常范围之外的退出状态码