linux环境变量export source

1. 查看系统环境变量

        #env

2.变量类型

        永久的:需要修改配置文件,变量永久生效

        linux变量文件有/etc/environment 、 /etc/profile、/etc/bash.bashrc

        ~/.profile 、 ~/.bashrc, ~/.bash_profile(一般是用户在自己目录下新建的),/.bash_logout

        临时的:使用export命令声明即可,变量在关闭shell时失效

3. export

    export [选项-fnp] 参数

        -f:代表[变量名称]中为函数名称;
        -n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
        -p:列出所有的shell赋予程序的环境变量。

一个变量创建时,它不会自动地为在它之后创建的shell进程所知(即变量名=变量,只在当前shell生效,子shell不生效),export命令可以用于传递一个或多个变量的值到任何后继脚本(export 变量名=变量值),export命令的作用是使得环境变量对于该shell进程的子进程生效,其他shell不生效

4.source

        source [文件名] [参数]

        在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态,source命令的作用是把          source后面跟的文件内容在当前shell进程中执行,文件的变量等会在当前shell生效

        [root@localhost ~]# source ~/.bash_profile   

        可使得配置文件~/.bash_profile中的环境变量在当前shell临时生效;

        eg: 

#vi 1.sh   //1.sh内容如下:
    #!/bin/bash
    AA=111
    echo $AA

#chmod +x 1.sh  //给1.sh脚本加权限
#./1.sh         //输出111,只在子shell中生效, 子1
#echo $AA       //没有内容,当前父shell不生效
#source 1.sh   //source 命令的作把文件内容在当前shell进程(父进程)中执行,即在当前shell生效
#echo $AA     //输出111,在父shell执行echo

再创建其他子shell,则不会生效,执行source,相当于在当前shell执行,其他子shell生效
#vi 2.sh  ,内容如下:
    #!/bin/bash
     echo $AA
#chmod +x 2.sh
#./2.sh       //没有内容
#source 2.sh  //输出111, 相当于 子1->父shell->子2

如果想直接执行./2.sh生效,则需要将1.sh中变量赋值添加export,
即: export AA=111, 
#source 1.sh   //子1->父shell
#./2.sh        //输出111, 父shell->子2
因为export命令的作用是使得环境变量对于该shell进程的子进程生效,所以直接执行./2.sh则能输出111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值