The export
Linux中的命令是一个内置的shell命令,用于设置环境变量在当前 shell 会话中。
通过标记变量或函数以便随后导出到子进程的环境中,export
命令确保这些变量对子进程的可用性。
导出命令的语法
的基本语法export
命令如下:
export [options] [name[=value]]
Where name
是您要设置的变量的名称,value
是您要分配给该变量的值,并且options
是可与命令一起使用来修改其行为的标志或开关。
导出单个环境变量
假设您想创建一个环境变量TEMP_DIR
并将其值设置为/tmp
。操作方法如下:
export TEMP_DIR=/tmp
您可以通过回显变量的值来确认变量设置是否正确:
echo $TEMP_DIR
Output:
/tmp
在上面的一系列命令中,您首先使用export
创建新环境变量的命令TEMP_DIR
并将其值设置为/tmp
.
The echo
然后使用命令打印的值TEMP_DIR
环境变量,并且它正确打印/tmp
确认变量设置成功。
导出多个环境变量
您可以通过在单个导出命令中指定每个变量及其值(以空格分隔)来一次导出多个环境变量:
export VAR1="Variable 1" VAR2="Variable 2"
要检查变量是否已正确设置,请使用回显命令:
echo $VAR1 $VAR2
Output:
Variable 1 Variable 2
在给定的命令中,我们导出了两个环境变量,VAR1
and VAR2
,有值"Variable 1"
and "Variable 2"
分别。
导出函数
您可以使用export
使用命令导出函数-f
选项。当您想让某个功能可供使用时,这非常有用子壳。具体做法如下:
首先,定义一个函数:
hello() {
echo "Hello, world!"
}
然后,导出它:
export -f hello
您可以使用以下命令检查导出的函数declare -F
:
declare -F hello
Output:
hello
最初,一个名为hello
已定义,调用时会打印"Hello, world!"
.
然后使用导出该函数export -f hello
.
The -f
option 用于导出函数。我们用了declare -F hello
检查该功能是否hello
已成功导出。
出口-f
允许一次导出多个函数,而不必单独导出每个函数。
function func1 {
echo "This is function 1"
}
function func2 {
echo "This is function 2"
}
function func3 {
echo "This is function 3"
}
export -f func1 func2 func3
# Now functions can be called from subshells
bash -c 'func1' # Outputs "This is function 1"
bash -c 'func2' # Outputs "This is function 2"
bash -c 'func3' # Outputs "This is function 3"
不带参数的导出命令
通过使用export
命令不带任何参数,可以显示当前 shell 会话中设置的所有环境变量。这是一个例子:
export
Output:
declare -x HOME="/home/user"
declare -x LANG="en_US.UTF-8"
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
...
在这种情况下,export
命令在不带任何参数的情况下执行,导致 shell 打印当前会话中设置的所有环境变量。
变量如HOME
, LANG
, and PATH
其中,通常由系统预定义。
从环境中删除变量
The -n
选项与export
从环境中删除变量的命令。
假设您想删除变量VAR1
这是之前定义的。操作方法如下:
export -n VAR1
要验证变量是否已被删除,请尝试回显其值:
echo $VAR1
Output:
# No output
我们使用了-n
选项与export
命令删除VAR1
多变的。当我们尝试使用echo $VAR1
命令,没有输出。
显示用作输入的变量
The -p
选项与export
命令以可重复用作输入的格式打印导出的变量和函数的列表。使用方法如下:
export -p
Output:
declare -x HOME="/home/user"
declare -x LANG="en_US.UTF-8"
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
...
declare -f hello
Here, export -p
用于列出导出的变量和函数。
输出格式可以很容易地用作其他 shell 脚本的输入。
变量前面是declare -x
和功能由declare -f
,帮助我们区分它们。
详细模式
The -v
选项与export
导出变量时命令会给出详细输出。
此选项有助于调试,因为它会为每个导出的变量打印一条消息。
让我们尝试导出一个变量VAR3
在详细模式下:
export -v VAR3="Verbose Variable"
Output:
export VAR3='Verbose Variable'
在此命令中,VAR3
与值一起导出"Verbose Variable"
.
The -v
选项会触发详细输出,显示正在导出的变量及其值。
安全导出变量
导出变量时,尤其是那些包含特殊字符或空格的变量,安全处理它们至关重要。
要安全地导出变量,您应该将该值括在引号中。这可确保整个字符串被视为单个值,即使它包含空格或特殊字符:
export SAFE_VAR="This is a 'safe' variable"
要检查变量的值:
echo $SAFE_VAR
Output:
This is a 'safe' variable
在这种情况下,变量SAFE_VAR
导出的值包含空格和特殊字符(单引号)。
通过将值括在双引号内,我们确保它被解释为一个字符串。
现实场景中导出的用例
在实际应用中,export
命令通常用于设置影响系统行为或软件配置的环境变量。
一个常见的用例是修改PATH
环境变量包括包含可执行文件的目录。例如:
export PATH=$PATH:/opt/myapp/bin
在这种情况下,/opt/myapp/bin
被附加到现有的PATH
。现在,任何可执行文件/opt/myapp/bin
可以从任何位置运行,无需指定完整路径。
资源
https://www.man7.org/linux/man-pages/man1/export.1p.html