Menu
CoddyTech

导出变量

本课属于 Coddy Terminal 学习旅程的“基础知识”单元。第 63 课,共 82 课。

当你设置像 MY_NAME="Alice" 这样的变量时,它只存在于当前 shell 中。如果你运行脚本或启动另一个程序,该变量对它来说不可用。这时就需要用到 export。

export 命令会让子进程都能访问某个变量,也就是说,从当前 shell 启动的程序或脚本都可以访问它:

export MY_NAME="Alice"

你也可以导出现有变量:

MY_NAME="Alice"
export MY_NAME

这两种方法都能达到相同的结果。变量会成为环境的一部分,并传递给你之后运行的任何命令。

要了解其中的区别,可以运行一个尝试使用 $MY_NAME 的脚本。

不导出时,脚本什么也看不到。导出后,脚本就可以访问这个值。

这就是为什么像 PATH 和 HOME 这样的系统变量默认会被导出。它们需要对你运行的每个程序都可用。

你可以检查变量是否出现在 env 输出中,来确认它是否已导出:

env | grep MY_NAME

关闭终端后,导出的变量仍会消失。下一课将介绍如何让变量在不同会话之间保持不变。

challenge icon

挑战

简单

导出一个名为 PROJECT、值为 terminal-course 的变量,然后筛选 env 的输出,只显示这个新变量,以确认它已导出。

你可以用一行命令完成:使用 export 一次性设置并导出变量,然后通过管道将 env 的输出传给 grep,找到这个变量。

你的输出应为:

PROJECT=terminal-course

提示:先运行 export PROJECT="terminal-course",然后使用 env | grep PROJECT,确认它出现在环境中。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Terminal 在线编辑器