侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux export命令详解:linux环境变量设置与管理(附实例教程和注意事项)

Linux export命令介绍

Linux export命令是一个内置的Bash shell命令,用于将环境变量导出到子进程,而不影响现有的环境变量。本地shell变量只能被创建它们的shell所知道,如果开始一个新的shell会话,之前创建的变量就会对它不可见。使用export命令可以将变量从一个shell导出,使它们成为全局的,并且在每个新的shell会话中都可用。在本教程中,你将学习如何使用export命令,并看到一些有用的命令示例。

Linux export命令适用的Linux版本

Linux export命令可以在多数Linux发行版(如Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian)的主要终端命令解释器(包括bash、zsh、csh、ksh、fish、tcsh)中使用,因为它是Bash shell的一部分,而Bash shell是Linux系统的默认shell。如果你使用的是其他的shell,比如Zsh或Fish,你可能需要使用不同的命令来设置环境变量。例如,在Zsh中,你可以使用typeset -x命令,而在Fish中,你可以使用set -x命令。

如果你不确定你使用的是哪种shell,你可以使用echo $SHELL命令来查看:

[linux@bashcommandnotfound.cn ~]$ echo $SHELL
/bin/bash

Linux export命令的基本语法

Linux export命令的语法格式如下:

export [-f] [-n] [name[=value] ...]

或者

export -p

如果不带任何选项运行该命令,它会输出所有已导出的变量和函数。

Linux export命令的常用选项说明

Linux export命令的选项可以让用户添加、删除或查看已导出的变量。下表列出了可用的export选项:

选项描述
-f将[name]作为函数导出
-n将[name]从导出变量的列表中删除
-p显示当前shell中所有已导出的变量和函数

例如:

  1. 使用-p选项:

-p选项列出了当前shell中使用的所有变量名。运行:

export -p

输出列出了当前shell会话中使用的所有变量,通常与不带选项运行export的结果相同。

  1. 使用-f选项:

-f选项将变量名作为函数导出。要将一个名字作为函数导出,首先在命令行中创建一个具有唯一名字的函数。导出后,可以在命令行中使用它的名字调用该函数。按照以下步骤创建和导出一个函数:

  1. 创建并调用函数,运行:
function print_msg { echo "Hello world" }
print_msg
  1. 使用-f选项导出函数:
export -f print_msg
  1. 启动一个新的子shell会话,并使用函数名调用函数:
bash
print_msg

即使在启动子shell后,该函数也能正常工作,因为它之前已经被导出了。

  1. 使用-n选项:

-n选项从导出变量的列表中删除指定的变量和函数。在下面的例子中,我们删除了EDITOR变量:

export -n EDITOR

使用grep命令在export的输出中搜索EDITOR变量,没有打印任何结果,因为该变量已经被删除了:

export | grep EDITOR

Linux export命令的实例

以下部分展示了使用export命令的一些有用的示例。

在导出前给变量赋值

在使用export命令导出变量之前,可以给变量赋一个值。例如:

x=15

设置值后,导出变量:

export x

使用echo命令或printenv打印变量的值:

printenv x

导出多个变量

可以一次导出多个变量,只需在命令中指定它们的名字即可。例如:

export x y z

这会将x,y和z三个变量导出到子进程。

在一行中声明和导出变量

可以在一行中声明一个变量并立即导出它,只需在变量名后面加上等号和值即可。例如:

export myvar=5

这会创建一个名为myvar的变量,并将其值设置为5,然后导出它。

修改已导出变量的值

如果要修改一个已经导出的变量的值,可以直接给它赋一个新的值,不需要再次使用export命令。例如:

export myvar=5
myvar=10

这会将myvar的值从5改为10,而不影响它的导出状态。

查看已导出变量的值

有几种方法可以查看已导出变量的值,其中最常用的是:

  • 使用echo命令,并在变量名前加上美元符号。例如:
echo $myvar
  • 使用printenv命令,并指定变量名。例如:
printenv myvar
  • 使用env命令,并使用grep命令过滤输出。例如:
env | grep myvar

将导出的shell变量“永久化”到bashrc文件中

但是,问题并没有就此结束。如果你关闭会话,退出终端,注销或重启系统,你的环境变量就会再次消失。这就是为什么将export命令添加到shell的运行时配置(rc)文件中是一种常见的做法。每个shell都有一个位于用户主目录中的rc文件,用于在shell启动时确定变量和其他配置。作为用户,你可以使用这个rc文件来自定义你的shell及其行为。如果你使用的是bash shell,你应该在~/.bashrc中有一个bashrc文件。你可以在文本编辑器中编辑这个文件,或者你可以直接将export var=3(或者你要导出的内容)追加到这个文件中。完成后,你应该使用source命令来立即使更改生效。一个好的做法是将所有用户定义的环境变量放在一个地方。

Linux export命令的注意事项

  • 在使用export命令时,要注意变量名的大小写,因为Linux是区分大小写的。例如,myvar和MYVAR是两个不同的变量。
  • 如果你想取消一个变量的导出状态,你可以使用-n选项,或者使用unset命令来删除它。例如:
export -n myvar

或者

unset myvar
  • 如果你想查看一个变量是否已经被导出,你可以使用declare命令,并使用-a选项来查看所有变量的属性。如果一个变量被导出,它的属性中会有一个x。例如:
declare -a myvar

输出类似于:

declare -x myvar="10"
  • 如果你尝试导出一个不存在的变量,你不会得到任何错误,但是也不会有任何效果。例如:
export foo

这不会创建一个名为foo的变量,也不会导出它。你可以使用echo命令来验证:

echo $foo

输出为空。

  • 如果你在导出一个变量时,没有给它赋值,它的值将默认为空。例如:
export bar

这会创建一个名为bar的变量,并将其导出,但是它的值为空。你可以使用echo命令来验证:

echo $bar

输出为空。

  • 如果你想导出一个函数,你必须使用-f选项,否则它不会被导出。例如:
export print_msg

这不会导出print_msg函数,你必须使用:

export -f print_msg

才能导出它。

0

评论区