bash变量

bash有四种类型的变量,分别是用户自定义变量、环境变量、位置参数变量、预定义变量

用户自定义变量

Shell编程中,无需事先声明变量,变量名的命名遵循如下规则:

1)首个字符必须为字母(a-z,A-Z)

2)中间不能有空格,可以使用下划线

3)不能使用标点符号

4)不能使用bash中的关键字(help可查看保留关键字)

关于自定义变量,还有几点补充:

1)bash变量值默认类型都是字符串,若要进行数值运算,则必须指定变量类型为数值型

2)变量值中有空格,用单引号包括

3)变量值中可以使用转义符

4)若需要增加变量的值,则可进行变量值的叠加,变量需要用双引号"$变量名"或${变量名}包含

5)若要把命令的结果作为变量值赋给变量,使用反引号或者$()包含命令

6)环境变量建议大写,便于与其他变量区分

变量的定义与使用

变量定义

用户可以按照下面语法规则定义自己的变量

变量名=变量值,"="左右两侧不能有空格,如name=zhangsan

变量调用

$变量名,所有类型的变量都可以以这种方式调用

变量叠加

"$变量名"附加内容 或 ${变量名}附加内容

变量查看

set  查看所有类型的的变量

变量删除

unset 变量名

环境变量

用户自定义的变量只在当前的Shell中生效,而环境变量会在当前Shell及其所有的子Shell中生效。如果将环境变量写入相应的配置文件,则该环境变量在所有的Shell中生效

声明环境变量

export 变量名=变量值

export 变量,将普通的变量声明为环境变量

查询环境变量

env  查询环境变量的专有命令,set命令时查询所有类型的变量

删除环境变量

unset 变量名

位置参数变量

位置参数变量

作用

$n

n为数字,$0代表命令本身,$1~$9代表第一个刀第九个参数,十以上的参数需要用大括号包含,如${10}

$*

该变量代表命令行中的所有参数,$*会将所有的参数当做一个整体

$@

该变量也代表命令行中的所有参数,$@会把每个参数区分对待

$#

该变量代表命令行中所有参数的个数

保存脚本退出,在命令行执行脚本,并输入参数

 预定义变量

预定义变量

作用

$?

最后一次执行命令的返回状态,如果这个变量值为0,证明上一个命令正确执行;如果这个变量值非0(具体是哪个数,由命令自己决定),则证明上一个命令执行不正确

$$

当前进程的进程号(PID)

$!

后台运行的最后一个进程的进程号(PID)

原文地址:https://www.cnblogs.com/qingyaxuan/p/6797053.html