变量命名规则:

1、变量名称可以由字母、数字、下划线组成,但是不能以数字开头

2、在bash中变量默认是字符串型,如果要进行数值运算,必须指定变量类型为数值类型

3、变量用等号连接,等号两边不能有空格

4、变量值中如果有空格,需要使用单引号或者双引号包括

centos shell定义变量并使用 shell定义变量的规则_centos shell定义变量并使用

 

 

5、变量得值可以叠加

centos shell定义变量并使用 shell定义变量的规则_环境变量_02

 

 6、可以将命令得结果赋值给变量

centos shell定义变量并使用 shell定义变量的规则_bash_03

 

 

变量的分类

用户自定义变量:名称:自定义  作用:自定义 内容:自定义

环境变量(一般大写):一般对系统起作用,不能更改变量名。 名称:确定  作用:确定  内容:自定义

位置参数变量:主要是用来向脚本当中传递参数或者数据  名称:确定 作用:确定 内容自定义

预定义变量:bash中已经定义好的变量。名称:确定 作用:确定 内容自定义

 

用户自定义变量

①变量定义

centos shell定义变量并使用 shell定义变量的规则_bash_04

 

 

 

②变量调用

centos shell定义变量并使用 shell定义变量的规则_centos shell定义变量并使用_05

 

 

 

③变量查看

set [选项]

-u 如果调用未声明变量时会报错

-x 在命令执行之前会把命令先输出一次

centos shell定义变量并使用 shell定义变量的规则_bash_06

 

 

 ④变量删除

centos shell定义变量并使用 shell定义变量的规则_centos shell定义变量并使用_07

 

 

 

 

环境变量(用户自定义环境变量)

1、环境变量与用户自定义变量区别,环境变量可以在子shell中生效,用户自定义变量只能在当前环境下生效

2、如果用户自定义环境变量,需要在前加入export

centos shell定义变量并使用 shell定义变量的规则_centos shell定义变量并使用_08

 

3、env和set命令的区别

set命令可以查看所有变量,env只能查看环境变量

4、删除系统环境变量

unset [名称]

 

环境变量(系统自带的环境变量)

path 变量:系统查找命令的路径

centos shell定义变量并使用 shell定义变量的规则_centos shell定义变量并使用_09

 

 

 例如:将脚本所在的目录添加到PATH路径上,就可以在任意地方运行脚本。在运行脚本时,会自动搜索path中定义的路径

centos shell定义变量并使用 shell定义变量的规则_bash_10

 

 

 

位置参数变量

$n   n为数字,$0 代表命令本身  1-9代表1到9个参数,10以上要用${10}

$# 代表命令中所有参数的个数

$* 代表命令中的所有参数,把所有参数看成一个整体

$@  代表命令中的所有参数,把每个参数区分对待

案例1 

centos shell定义变量并使用 shell定义变量的规则_自定义_11

 

 

 结果

 

 

centos shell定义变量并使用 shell定义变量的规则_centos shell定义变量并使用_12

 

 

 案例2

centos shell定义变量并使用 shell定义变量的规则_bash_13

 

运行:

centos shell定义变量并使用 shell定义变量的规则_centos shell定义变量并使用_14

 

 

 预定义变量

$?       最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令执行正确,如果这个变量的值为非0,则证明上一个命令执行不正确

centos shell定义变量并使用 shell定义变量的规则_环境变量_15

 

 $$  当前进程的进程号PID

$! 后台运行的最后一个进程的进程号

 

环境变量配置文件

⑴source 命令

source 配置文件 或  . 配置文件  ,可以直接生效

⑵环境变量的配置文件

①录系统时,主要生效的环境变量配置文件有以下5个

/etc/profile

/etc/profile.d/*.sh

~/.bash_profile

~/.bashrc

/etc/bashrc

注意:/etc目录下的可以对所有用户生效

    写在~目录下的只对当前用户生效,如写在临时用户目录下,就只对临时用户生效

 ②户退出时候调用

~/.bash_logout. 比如可以执行一些清除历史命令的操作

③ 其他配置文件

常见的如

~/.bash_history文件,历史命令保存文件

I hope all of us can learn to progress!