Bash: export - 設定或顯示環境變數
用途說明
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。
使用示例
示例一 列印環境變數
[root@jfht ~]# 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"
[root@jfht ~]#
示例二 一個關於變數export效果的測試
首先,準備一個簡單的shell指令碼,取名為xyz.sh,用於列印變數XYZ的值。
[root@jfht ~]# cat xyz.sh
#!/bin/sh
echo $XYZ
[root@jfht ~]# chmod +x xyz.sh
現在,在當前shell中沒有定義XYZ變數。
[root@jfht ~]# echo $XYZ
[root@jfht ~]# (echo $XYZ)
[root@jfht ~]# export -p | grep XYZ
[root@jfht ~]# ./xyz.sh
[root@jfht ~]#
現在,定義變數XYZ。
[root@jfht ~]# XYZ=123
[root@jfht ~]# echo $XYZ
123
[root@jfht ~]# (echo $XYZ)
123
[root@jfht ~]# export -p | grep XYZ
[root@jfht ~]# ./xyz.sh
[root@jfht ~]#
現在,匯出變數XYZ。
[root@jfht ~]# export XYZ
[root@jfht ~]# echo $XYZ
123
[root@jfht ~]# (echo $XYZ)
123
[root@jfht ~]# export -p | grep XYZ
declare -x XYZ="123"
[root@jfht ~]# ./xyz.sh
123
[root@jfht ~]#
現在,取消匯出。
[root@jfht ~]# export -n XYZ
[root@jfht ~]# echo $XYZ
123
[root@jfht ~]# (echo $XYZ)
123
[root@jfht ~]# export -p | grep XYZ
[root@jfht ~]# ./xyz.sh
[root@jfht ~]#
現在,刪除變數。
[root@jfht ~]# unset XYZ
[root@jfht ~]# echo $XYZ
[root@jfht ~]# (echo $XYZ)
[root@jfht ~]# export -p | grep XYZ
[root@jfht ~]# ./xyz.sh
[root@jfht ~]#
問題思考
相關資料
【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
相關文章
- export 設定環境變數Export變數
- [20200217]bash顯示path環境變數.txt變數
- ansible設定環境變數變數
- ansible 設定環境變數變數
- Linux設定環境變數Linux變數
- Linux中bash shell環境變數Linux變數
- java jdk 設定環境變數JavaJDK變數
- 什麼是環境變數?Python中如何設定環境變數?變數Python
- 4.2.10.2 設定和取消設定環境變數變數
- win10環境變數怎麼設定 win10設定環境變數的方法Win10變數
- JDK1.8環境變數設定JDK變數
- Golang環境變數設定詳解Golang變數
- linux系統設定環境變數Linux變數
- Vue 設定環境變數和模式Vue變數模式
- python 獲取設定環境變數Python變數
- win 命令列 設定環境變數命令列變數
- Centos7環境變數設定CentOS變數
- 環境變數的設定方法(轉)~變數
- Mac 設定環境變數的位置、檢視和新增PATH環境變數Mac變數
- 什麼是環境變數?python設定環境變數有什麼用?變數Python
- win10 gcc環境變數怎麼設定_win10設定gcc環境變數步驟Win10GC變數
- 系統預設環境變數PATH設定變數
- Linux字符集環境變數設定Linux變數
- Rust 使用 dotenv 來設定環境變數Rust變數
- ubuntu-設定系統環境變數Ubuntu變數
- tomcat配置環境變數win10怎樣設定_win10如何設定tomcat配置環境變數Tomcat變數Win10
- win10環境變數設定怎麼編輯 win10設定環境變數的位置在哪Win10變數
- 在Linux中,什麼是環境變數?如何設定和檢視環境變數?Linux變數
- win10 如何讓環境變數生效_windows10如何設定環境變數Win10變數Windows
- python設定環境變數(臨時和永久)Python變數
- rust程式中設定和訪問環境變數Rust變數
- Jtti:ubuntu中怎麼設定qt環境變數JttiUbuntuQT變數
- 2.4.3 Step 2: 確定設定好了環境變數變數
- 讀取和設定 Ubuntu 環境變數(很全面)Ubuntu變數
- JAVA下載安裝及設定環境變數Java變數
- Linux 基礎-檢視和設定環境變數Linux變數
- Linux環境變數的設定、檢視、刪除Linux變數
- win10環境變數怎麼設定 win10環境變數更改的方法步驟Win10變數
- [20221111]bash eval設定變數問題.txt變數