Linux命令(49)——export命令(builtin)

1.命令简介

export命令为Shell内建命令,用于设置或显示环境变量,环境变量包含变量与函数。

在Shell中执行程序时,Shell会提供一组环境变量。export可新增、删除或修改环境变量,供后续被执行的程序使用。export的作用效果仅限于当前登陆。

2.命令格式

export [-fn] [name[=word]] ...
export -p

3.命令选项

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

4.常用示例

(1)定义环境变量并赋值。

export MYNEWV=8

(2)修改指明Shell命令搜索路径的环境变量PATH。

export PATH=$PATH:/usr/local/mysql/bin

查看是否已经设置好,可以使用命令export -p命令来查看,也可以使用echo命令打印变量内容。

export -p | grep PATH

#或者
echo $PATH

(3)export用于Shell脚本。 用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。系统将创建一个子shell进程。此时,系统中将有两个shell进程,一个是登录时系统启动的shell进程,另一个是系统为运行脚本程序创建的shell进程。当一个脚本程序运行完毕,它的脚本shell进程将终止,可以返回到执行该脚本之前的shell。从这种意义上来 说,用户可以有许多shell进程,每个shell进程都是由其父shell进程派生的。

在子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。

例如脚本test1.sh中调用脚本test2.sh,test2.sh中使用test1.sh定义的变量shareVar。 test1.sh定义如下:

#!/bin/sh
shareVar=666
export shareVar
./test2.sh

test2.sh定义如下:

#!/bin/sh
echo "in $0"
echo $shareVar

执行test1.sh输出结果如下:

[user_00@TENCENT64 ~]./test1.sh
in ./test2.sh
666

5.Linux设置环境变量的三种实现方法

(1)1.直接使用export命令

export PATH=$PATH:/usr/local/mysql/bin

注意:直接使用export设置的变量都是临时变量,也就是说退出当前的Shell为该变量定义的值便不会生效了。我们可以使用如下两种方式使变更永久有效。

(2)修改/etc/profile,加入如下行,将对所有用户生效。

export PATH=$PATH:/usr/local/mysql/bin

注意:修改完这个文件必须要使用如下命令执行配置文件的内容,在不用重启系统的情况下使修改的内容生效。

source /etc/profile

#或
. /etc/profile

(3)修改~/.bashrc文件,加入如下行,只对当前用户生效。

export PATH=$PATH:/usr/local/mysql/bin

修改这个文件之后同样也需要使用source或者是.命令使配置文件生效。


参考文献

[1]man export [2]菜鸟教程.Linux export命令 [3]linux下export命令添加、删除环境变量

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏coder修行路

多进程、协程、事件驱动及select poll epoll

多线程的使用场景 IO操作不占用CPU 计算占用cpu python多线程不适合cpu密集型操作的任务,适合IO操作密集型的任务 多进程 简单的一个多进程例子:...

3569
来自专栏chafezhou

小说python的路径操作

1392
来自专栏张善友的专栏

VS 2005 文本编码小技巧

     VS2003使用代码生成器生成的代码加入到工程会很郁闷的,在智能提示中是乱码,在VS2005中有一个选项可以解决这个问题。      今天将一个工程从...

1986
来自专栏爱撒谎的男孩

Struts2之动态调用

-在struts核心配置文件详解(action)中已经详细讲解了method的用法,使用这个方式可以指定Action类中的不同的方法映射请求,那么就完成了动态调...

3296
来自专栏Petrichor的专栏

python: IO操作

1103
来自专栏电光石火

jdk配置

1.右键选择 计算机→属性→高级系统设置→高级→环境变量

2089
来自专栏nummy

ipython 自动加载 auto_reload 扩展

在开发中django或者flask开发中,调试的时候经常用到manager shell.如果安装了ipython的话,默认是打开ipython的。在调试过程中,...

933
来自专栏我的博客

YII使用命令行模式

入口文件:shell.php run(); 数据库配置文件console.php可以参考main.php 演示protected/commands/TestCo...

3533
来自专栏雅俗

Linux服务器通过crontab自动备份数据库

执行 crontab 命令如果报 command not found,就表明没有安装

2836
来自专栏coding

Linux笔记2

1562

扫码关注云+社区

领取腾讯云代金券