linux 系統中 獲取環境變量、 獲取環境變量+自定義變量


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM