如何在 Linux / Unix 中使用 export 命令
您可以在 Linux、macOS、FreeBSD 和类 Unix 系统下使用 export 命令导出 shell 变量,这些系统具有 bash 和其他支持该命令的 shell。本页向新系统管理员和开发人员介绍了 export 命令的语法和用法。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | Linux shell 脚本 |
操作系统兼容性 | BSD • Linux • macOS • Unix |
预计阅读时间 | 2 分钟 |
如何在 Linux / Unix 中使用 export 命令
为了确保当前环境中的 shell 变量随新的子进程导出,必须使用 export 命令。
句法
语法如下:
您可以在导出之前使用以下语法分配值:
或者
导出命令将标记每个 VAR 以便自动导出到后续执行的命令的环境中,即使本地 shell 变量 VAR 成为全局变量。
$ export VAR
$ export VAR=value
$ VAR=value
$ export VAR
设置新的环境变量命令
$ export <VARIABLE_NAME>=<value_here>
删除环境变量
$ export -n <VARIABLE_NAME>
如何标记 shell 函数以供导出
$ export -f <FUNCTION_NAME>
使用导出将某些内容附加到PATH 变量
$ export PATH="$PATH:</new/path/to/append/>
示例
要创建名为 PATH 的本地 shell 变量,请输入以下命令:
### export PATH ### export PATH="$PATH:/usr/local/bin"
使用 echo 命令或 printf 命令打印新设置:
echo "$PATH" printf "%s\n" "$PATH"
设置一个新的 EDITOR 变量:
export EDITOR=/usr/bin/vim
您需要将导出语句添加到 ~/.bash_profile 或 ~/.profile 或 /etc/profile 文件。这将永久导出变量:
$ vi ~/.bash_profile
示例导出命令配置:
PATH="$PATH:$HOME/bin" export PATH # set vim as a text editor export EDITOR="/usr/bin/vim" export VISUAL="/usr/bin/vim" # Set colorful prompt export PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] ' # Set java_home export JAVA_HOME="/usr/local/jdk"
要查看所有导出变量和函数的列表,请输入:
$ export -p
示例输出:
declare -x COLORTERM="gnome-terminal" declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-pODhldZ1lj,guid=6cfbd17d02f210f6de5e630b00000165" declare -x DESKTOP_SESSION="gnome" declare -x DISPLAY=":0.0" declare -x GDMSESSION="gnome" declare -x GDM_KEYBOARD_LAYOUT="us" declare -x GDM_LANG="en_IN" declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated" declare -x GNOME_KEYRING_CONTROL="/tmp/keyring-oDL07q" declare -x GNOME_KEYRING_PID="2708" declare -x GPG_AGENT_INFO="/tmp/seahorse-PBDijt/S.gpg-agent:2777:1" declare -x GTK_MODULES="canberra-gtk-module" declare -x GTK_RC_FILES="/etc/gtk/gtkrc:/home/vivek/.gtkrc-1.2-gnome2" declare -x HOME="/home/vivek" declare -x LANG="en_IN" declare -x LANGUAGE="en_IN:en" declare -x LOGNAME="vivek" declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:" declare -x OLDPWD declare -x ORBIT_SOCKETDIR="/tmp/orbit-vivek" declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" declare -x PWD="/tmp/n" declare -x SESSION_MANAGER="local/wks01:@/tmp/.ICE-unix/2727,unix/wks01:/tmp/.ICE-unix/2727" declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_AGENT_PID="2763" declare -x SSH_AUTH_SOCK="/tmp/keyring-oDL07q/ssh" declare -x TERM="xterm" declare -x USER="vivek" declare -x USERNAME="vivek" declare -x WINDOWID="73400323" declare -x WINDOWPATH="7" declare -x XAUTHORITY="/var/run/gdm3/auth-for-vivek-DSw31c/database" declare -x XDG_DATA_DIRS="/usr/share/gnome:/usr/share/gdm/:/usr/local/share/:/usr/share/" declare -x XDG_SESSION_COOKIE="6cff67927ad82fca095a44640000001f-1336294442.327911-838315070"
总结
您了解了 bash 和其他 shell 中使用的 export 命令,该命令标记当前环境中的 shell 变量,以便与任何新分叉的子进程或子 shell 一起导出。请使用 help 命令或 man command/info 命令阅读 export 命令手册或帮助页面。例如,在命令提示符下键入以下命令:
$ man bash
$ help export