![查看所有 Bash/Shell 脚本相关的常见问题解答](https://www.alaica.com/wp-content/uploads/linux-21.png)
如何在 Linux 或类 Unix 操作系统下使用导出命令在 bash shell 上设置变量?
您可以在 Linux、macOS、FreeBSD 和类 Unix 系统下使用 bash 和其他支持它的 shell 使用导出命令导出 shell 变量。本页向新系统管理员和开发人员解释导出命令语法和用法。
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | Linux shell 脚本 |
操作系统兼容性 | BSD • Linux • macOS • Unix |
美东时间。阅读时间 | 2分钟 |
如何在 Linux / Unix 中使用导出命令
为了确保当前环境中的 shell 变量随新的子进程一起导出,必须使用 export 命令。
句法
语法如下:
您可以使用以下语法在导出之前赋值:
OR
导出命令将标记每个 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 变量,请键入以下内容:
### 导出路径 ### 导出 路径= " $PATH :/usr/local/bin"
使用 echo 命令或 printf 命令打印新设置:
echo " $PATH " printf "%s n " " $PATH "
设置一个新的编辑器变量:
导出 编辑器= / usr / bin / vim
您需要将导出语句添加到 ~/.bash_profile 或 ~/.profile 或 /etc/profile 文件中。这将永久导出变量:
$ vi ~/.bash_profile
示例导出命令配置:
PATH = " $PATH : $HOME /bin" 导出PATH # 将 vim 设置为文本编辑器 export EDITOR = "/usr/bin/vim" export VISUAL = "/usr/bin/vim" # 设置彩色提示 导出 PS1 = '[e[1;32m][u@h W]$[e[0m] ' # 设置java_home 导出 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 声明 -x ORBIT_SOCKETDIR = "/tmp/orbit-vivek" 声明 -x PATH = "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" 声明 -x PWD = “/tmp/n” 声明-x SESSION_MANAGER = “local/wks01:@/tmp/.ICE-unix/2727,unix/wks01:/tmp/.ICE-unix/2727” 声明-x SHELL = “/bin /bash” 声明-x SLVL = “1” 声明-x SSH_AGENT_PID = “2763” 声明-x SSH_AUTH_SOCK = “/tmp/keyring-oDL07q/ssh” 声明-x TERM = “xterm” 声明-x USER = “vivek” 声明-x USERNAME = “vivek” 声明-x WINDOWID = “73400323” 声明-x WINDOWPATH = “7” 声明-x XAUTHORITY = “/var/run/gdm3/auth-for-vivek-DSw31c/database” 声明-x XDG_DATA_DIRS = "/usr/share/gnome:/usr/share/gdm/:/usr/local/share/:/usr/share/" 声明 -x XDG_SESSION_COOKIE = "6cff67927ad82fca095a44640000001f-1336294442.327911-838315070"
加起来
您了解了 bash 和其他 shell 中使用的导出命令,该命令将当前环境中的 shell 变量标记为与任何新分叉的子进程或子 shell 一起导出。请使用help命令或man命令/info命令阅读导出命令手册或帮助页面。例如,在命令提示符下键入以下命令:
$ man bash
$ help export