天天看點

我使用過的Linux指令之export - 設定或顯示環境變量我使用過的Linux指令之export - 設定或顯示環境變量

我使用過的Linux指令之export - 設定或顯示環境變量

本文連結:http://codingstandards.iteye.com/blog/1138524   (轉載請注明出處)

用途說明

export指令可以用來設定或顯示環境變量。在shell中,當一個變量建立時,隻會在目前的shell中有 效,之後建立的子程序不會有該變量。而指令export可以将一個shell變量變成環境變量,在随後建立的子程序中也能通路到該環境變量,但是子程序在 修改了環境變量的值之後,父程序并不能知道,因為子程序将複制父程序的環境變量。是以,當shell退出時,那些在該shell中export出來的環境 變量也會消失。

在Linux中,有幾個比較相近的指令:set, env和export,它們都可以用來列印shell中的變量。set指令顯示目前shell的變量,包括目前shell的環境變量;env指令顯示目前 shell的環境變量;export指令顯示目前導出成環境變量的shell變量。

常用參數

格式:export

格式:export -p

列印目前導出的環境變量。

格式:export VAR

導出變量VAR。

格式:export VAR=VALUE

設定環境變量,并導出。

格式:export -n VAR

取消導出變量VAR。

格式:unset VAR

删除變量VAR。

使用示例

示例一 列印環境變量

[[email protected] ~]# export -p

declare -x ANT_HOME="/usr/apache/apache-ant-1.7.1"

declare -x CVS_RSH="ssh"

declare -x G_BROKEN_FILENAMES="1"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x HOSTNAME="jfht"

declare -x INPUTRC="/etc/inputrc"

declare -x JAVA_HOME="/usr/java/jdk1.6.0_20"

declare -x LANG="zh_CN.GB18030"

declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

declare -x LOGNAME="root"

declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

declare -x MAIL="/var/spool/mail/root"

declare -x OLDPWD

declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/apache/apache-ant-1.7.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

declare -x PWD="/root"

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"

declare -x SSH_AUTH_SOCK="/tmp/ssh-XONvzI3100/agent.3100"

declare -x SSH_CLIENT="27.115.25.30 26926 2622"

declare -x SSH_CONNECTION="27.115.25.30 26926 211.103.28.26 2622"

declare -x SSH_TTY="/dev/pts/5"

declare -x TERM="linux"

declare -x USER="root"

[[email protected] ~]#

示例二 一個關于變量export效果的測試

首先,準備一個簡單的shell腳本,取名為xyz.sh,用于列印變量XYZ的值。

[[email protected] ~]# cat xyz.sh

#!/bin/sh

echo $XYZ

[[email protected] ~]# chmod +x xyz.sh

現在,在目前shell中沒有定義XYZ變量。

[[email protected] ~]# echo $XYZ

[[email protected] ~]# (echo $XYZ)

[[email protected] ~]# export -p | grep XYZ

[[email protected] ~]# ./xyz.sh

[[email protected] ~]#

現在,定義變量XYZ。

[[email protected] ~]# XYZ=123

[[email protected] ~]# echo $XYZ

123

[[email protected] ~]# (echo $XYZ)

123

[[email protected] ~]# export -p | grep XYZ

[[email protected] ~]# ./xyz.sh

[[email protected] ~]#

現在,導出變量XYZ。

[[email protected] ~]# export XYZ

[[email protected] ~]# echo $XYZ

123

[[email protected] ~]# (echo $XYZ)

123

[[email protected] ~]# export -p | grep XYZ

declare -x XYZ="123"

[[email protected] ~]# ./xyz.sh

123

[[email protected] ~]#

現在,取消導出。

[[email protected] ~]# export -n XYZ       

[[email protected] ~]# echo $XYZ

123

[[email protected] ~]# (echo $XYZ)

123

[[email protected] ~]# export -p | grep XYZ

[[email protected] ~]# ./xyz.sh

[[email protected] ~]#

現在,删除變量。

[[email protected] ~]# unset XYZ

[[email protected] ~]# echo $XYZ

[[email protected] ~]# (echo $XYZ)

[[email protected] ~]# export -p | grep XYZ

[[email protected] ~]# ./xyz.sh

[[email protected] ~]#

問題思考

相關資料

【1】旅途 關于linux的export指令和shell變量的生命周期

http://www.cppblog.com/mydriverc/archive/2009/09/16/96476.html

【2】中國IT實驗室 linux儲存export出來的環境變量

http://tech.e800.com.cn/articles/2010/55/1273035447311_1.html

【3】留住你的每一感悟 linux export 的作用

http://www.cublog.cn/u2/87706/showart_1958932.html

【4】玉米瘋收 在Linux裡設定環境變量的方法(export PATH)

http://www.cnblogs.com/amboyna/archive/2008/03/08/1096024.html

傳回 我使用過的Linux指令系列總目錄

繼續閱讀