1、獲取環境變量
export
env
2、測試export 和 env:
root@PC1:/home/test# ls root@PC1:/home/test# export > export.txt ## 生成文件 root@PC1:/home/test# ls export.txt root@PC1:/home/test# env > env.txt ## 生成文件 root@PC1:/home/test# ls env.txt export.txt root@PC1:/home/test# head env.txt SHELL=/bin/bash window=100000 LC_ADDRESS=zh_CN.UTF-8 LC_NAME=zh_CN.UTF-8 LC_MONETARY=zh_CN.UTF-8 PWD=/home/test LOGNAME=root XDG_SESSION_TYPE=tty MOTD_SHOWN=pam HOME=/root root@PC1:/home/test# head export.txt declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/0/bus" declare -x DISPLAY=":0.0" declare -x HOME="/root" declare -x LANG="en_US.UTF-8" declare -x LC_ADDRESS="zh_CN.UTF-8" declare -x LC_IDENTIFICATION="zh_CN.UTF-8" declare -x LC_MEASUREMENT="zh_CN.UTF-8" declare -x LC_MONETARY="zh_CN.UTF-8" declare -x LC_NAME="zh_CN.UTF-8" declare -x LC_NUMERIC="zh_CN.UTF-8" root@PC1:/home/test# awk '{print $3}' export.txt | sed 's/"//g' | head DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus DISPLAY=:0.0 HOME=/root LANG=en_US.UTF-8 LC_ADDRESS=zh_CN.UTF-8 LC_IDENTIFICATION=zh_CN.UTF-8 LC_MEASUREMENT=zh_CN.UTF-8 LC_MONETARY=zh_CN.UTF-8 LC_NAME=zh_CN.UTF-8 LC_NUMERIC=zh_CN.UTF-8 root@PC1:/home/test# awk '{print $3}' export.txt | sed 's/"//g' | sort > export2.txt ## 保留兩個文件的重合部分,排序 root@PC1:/home/test# sort env.txt env2.txt sort: cannot read: env2.txt: No such file or directory root@PC1:/home/test# sort env.txt > env2.txt ##排序 root@PC1:/home/test# diff export2.txt env2.txt ## 比較,發現兩個變量實質內容是一樣的,說明env和export都是生成環境變量的 14,15c14,15 < LESSCLOSE=/usr/bin/lesspipe < LESSOPEN=| --- > LESSCLOSE=/usr/bin/lesspipe %s %s > LESSOPEN=| /usr/bin/lesspipe %s 25,26c25,26 < SSH_CLIENT=192.168.3.4 < SSH_CONNECTION=192.168.3.4 --- > SSH_CLIENT=192.168.3.4 1392 22 > SSH_CONNECTION=192.168.3.4 1392 192.168.3.106 22 29a30 > _=/usr/bin/env root@PC1:/home/test#
3、declare 和 set獲取環境變量和自定義變量
測試:
root@PC1:/home/test# ls root@PC1:/home/test# declare > declare.txt root@PC1:/home/test# ls declare.txt root@PC1:/home/test# set > set.txt root@PC1:/home/test# ls declare.txt set.txt root@PC1:/home/test# diff declare.txt set.txt ## 兩者是一樣的 root@PC1:/home/test# wc -l * 1684 declare.txt 1684 set.txt 3368 total
4、自定義變量和 export 處理變量后的區別
export處理后的變量是環境變量,相當於全局變量,在自進程中可見。
自定變量相當於局部變量,僅在當前環境起作用
測試:
root@PC1:/home/test# ls root@PC1:/home/test# test_env=100 ##自定義變量 root@PC1:/home/test# export | grep "test_env" ## 在環境變量中無法檢索到 root@PC1:/home/test# declare | grep "test_env" ## 可以在自定義變量中檢索到 test_env=100 root@PC1:/home/test# export test_env2=200 ## 用export處理自定義變量 root@PC1:/home/test# export | grep "test_env2" ## 可以在環境變量中檢索到,說明export的作用是將自定義變量升級為環境變量 declare -x test_env2="200" root@PC1:/home/test# declare | grep "test_env2" ## 也可以在自定義變量檢索到 _=test_env2=200 test_env2=200
參考:http://c.biancheng.net/linux/export.html