1.用户自定义的变量
-变量名
以字母或下划线开头。由字母和数字和下划线组成
-赋值
test="XXX" (不能有空格)
-变量引用
$test
-当想把变量值和其他字符串拼接一起的时候
"$test"01/file
or
${test}01/file
-result:
XXX01/file
PS:注意不要写成 $(test) 这种小括号形式
linux 会把它括号内的test当作是 linux 命令执行,结果会出错
数组
-定义
array name=(value1 value2 ...) 注意中间空格分开
-读取
${name[0]},按下标读取对应的值
-读取整个数组
${name[*]}
or
${name[@]}
-它们之间的使用区别
* 会使得数组整体作为一个字符串。
@ 会使得数组依然一个个使用
数组.png
2.系统预定义变量
变量 作用
$? 上一条命令执行之后的返回值or状态码
$$ 当前进程的进程号
$! 上一个后台命令对应的进程号
$- 当前运行shell程序的选项
$# 命令行上参数的个数
$*,$@ 命令行上实际给出的所有实参
测试.png
3.位置参数变量
变量 作用
$n n为数字,$0代表命令本身,$1-$9代表1-9个参数,第10开始需使用${10}
$* 代表命令行中的所有参数,看成一个整体
$@ 代表命令行中的所有参数,区别对待
(具体说明看上边数组那一小节知识)
$# 返回命令行上参数的个数
4.环境变量
环境变量的名称一般大写
在bash中用env命令可以列出已经定义的所有环境变量
HOME 用户家的绝对路径
PATH shell查找命令的目录列表
PS1 shell的主提示符
PWD 当前工作目录的绝对路径
结果
网友评论