Linux命令行与Shell脚本编程(六)

Linux命令行与Shell脚本编程(六)

声明:本文为看书后的个人笔记,如有转载或引用请先跟作者说明用意。

 6.1 什么是环境变量

bash shell用一个叫做环境变量的特性来存储有关shell会话和工作环境的信息。

环境变量分为:全局变量和局部变量

全局环境变量对于shell会话和所有生成的字shell都是可见的。局部变量则只对创建它们的shell可见。

查看全局变量,可以使用 env 或 printenv 命令。

set 命令:显示为某个特定进程设置的所有环境变量。包括全局变量、局部变量以及用户定义变量

 

env、printenv、set区别:

set命令会显示出全局变量、局部变量以及用户定义变量。它还会按照字母顺序对结果进行排序。env 和 printenv 命令同set命令的区别在于前两个命令不会对变量排序,也不会输出局部变量和用户定义变量,在这种情况下,env 和 printenv 的输出是重复的。

6.2 设置用户定义变量(P106)

用户自定义变量

           

如果定义变量中含有空格的字符串,必须用单引号来界定字符串的首和尾。

注意: 定义的局部环境变量用的是小写字母,而到目前为止所看到的系统环境变量都是大写字母。

变量名、等号和值之间没有空格。

设置局部用户定义变量

在子shell设置的局部变量后,只能在此子shell中使用该变量,一旦离开此子shell,则不能用该变量。

设置全局环境变量

创建全局环境变量的方法是先创建一个局部环境变量。然后再把它导出到全局环境中。

例:

使用  export  命令使 my_variable 变成了全局环境变量。

在子shell中可以使用全局环境的值。但在子shell中修改全局环境变量并不会影响到父shell中该变量的值。

子shell甚至无法使用export 命令改变父shell中全局环境变量的值。

尽管子shell重新定义并导出了变量my_variable ,但父shell中的my_variable 变量依然保留原先的值。

unset 命令:删除已存在的环境变量。

在子shell中删除的全局变量,在父进程中还是可以照常使用全局变量。

6.5 设置PATH环境变量(P113)

PATH环境变量定义了用于进行命令和程序查找的目录。

如果命令或程序的位置没有包括在PATH变量中,那么shell是没法找到的。

如果想要子shell找到该命令,需要将该命令的路径添加到PATH中;

例如:path=$path:/etc/passwd     -->路径为绝对路径

对于PATH变量的修改只能持续到退出或重启系统,这种效果不能一直持续。

6.6 定位系统环境变量

/etc/profile 文件使系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行这个启动文件。

6.7 数组变量

例子:

使用unset删除某个值:

说明:当unset 删除数组中的数值时,只是将数组中的某个数值删除,置为空。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值