linux下shell變數,環境變數的聯絡與區別
by:授客qq:1033553122
1、
簡介
linux
下的變數可分成兩種:
shell
變數和環境變數。
shell
變數,又稱本地變數,包括私有變數以及使用者變數,不同類的
shell
有不同的私有變數,
bash,ksh,csh
等,每種
shell
的私有變數都不一樣
環境變數,又稱使用者變數,與
shell
無關常規定義變數的方法:變數名
=變數值
注意:1.
變數名和
=號之間不能有空格,否則
shell
會把變數名當成命令
2.變數名稱一般使用大寫字母
2、
常用的相關命令
env命令:顯示當前使用者的環境變數
set命令:不加引數,顯示當前
shell
的所有本地設定的
shell
變數,否則設定
shell
變數unset
命令:unset
為shell
內建指令,刪除變數或函式。
exprot
命令:顯示(設定
)當前匯出成使用者變數的
shell變數(
注意:export
為bash
或類bash
私有的命令
)echo $
變數名:檢視變數值
(其中,
$變數:引用變數的意思
)3、
示例
a)
使用env命令顯示當前使用者的所有環境變數
[laiyu@localhost ~]$ env
hostname=localhost.localdomain
shell=/bin/bash
term=xterm
histsize=1000
user=laiyu
ls_colors=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;...
mail=/var/spool/mail/laiyu
path=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/laiyu/bin
pwd=/home/laiyu
lang=en_us.utf-8
...home=/home/laiyu
logname=laiyu
..._=/bin/env
b)
使用set命令顯示當前
shell的所有本地shell變數
[root@localhost ~]# set | more
bash=/bin/bash
...bash_cmds=()
...c)
使用unset命令來清除變數(不管是shell變數還是環境變數)
[laiyu@localhost ~]$ export test=test #
增加乙個環境變數
test
[laiyu@localhost ~]$ env | grep test #
檢視增加的變數
test=test
[laiyu@localhost ~]$ unset $test #
刪除環境變數
test(
這裡test
前有無美元符都一樣
)[laiyu@localhost ~]$ env | grep test #
輸出為空
注意:unset
只能刪除非唯讀變數
d)
使用echo命令顯示環境變數(home變數為例)
[root@localhost ~]# echo $home
/root
e)
使用export命令將shell變數匯出為使用者變數,並顯示
列出所有的shell賦予程式的環境變數
[root@localhost ~]# export -p #
等同export
...declare -x home="/root"
declare -x hostname="localhost.localdomain"
declare -x lang="en_us.utf-8"
declare -x lessopen="|/usr/bin/lesspipe.sh %s"
declare -x logname="root"
declare -x path="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin/:/usr/local/tsung/bin"
...把shell變數匯出為使用者變數
[root@localhost ~]# shouke=ishouke #
定義shell
變數[root@localhost ~]# echo $shouke
ishouke
#檢視當前使用者的使用者變數是否存在
shouke
變數,結果是不存在
[root@localhost ~]# env | grep shouke
#檢視當前
shell
的本地變數是否存在
shouke
變數,結果是不存在
[root@localhost ~]# set | grep shouke
shouke=ishouke
#檢視shell
賦予程式的環境變數中是否存在
shouke
變數,結果不存在
[root@localhost ~]# export | grep shouke#匯出
shell
變數為使用者變數
[root@localhost ~]# export shouke
[root@localhost ~]# env | grep shouke
shouke=ishouke
[root@localhost ~]#
--------------------------------------
也可以如下方式使用
export
[root@localhost ~]# export shouke=ishouke
[root@localhost ~]# env | grep shouke
shouke=ishouke
[root@localhost ~]#
注意:以上的設定僅在當前開啟的
shell
視窗或或其子
shell
視窗中起作用,臨時的,關閉當前
shell
視窗或重啟機器,則剛才的設定失效,,或開啟乙個新視窗,設定在新視窗中不起作用。
linux 環境變數和shell變數
變數是任何一種程式語言都必不可少的組成部分,用於存放各種型別的變數。指令碼語言大多是弱型別語言 動態語言 也就是說在使用變數時,不需要事先宣告變數的型別,只需要直接賦值就可以。在bash中,每乙個變數的值都是字串。無論你給變數賦值時有沒有使用引號,值都會以字串的形式儲存。有一些特殊的變數會被shel...
linux(環境變數 shell程式設計)
系統環境變數 命名全域性變數 export name 999 系統級變數 對所有的使用者都生效 etc profile 只有root使用者才能設定 在文件中設定完畢,需要 source etc profile單使用者級別環境變數 bashrc 設定path 環境變數 臨時設定 path path s...
Linux 中Shell環境變數總結
shell環境變數在shell程式設計方面起到很重要的作用。分析下shell中幾個比較重要的環境變數很重要。所以下面分析一下。1 bash 記錄當前bash shell的路徑。舉例 root localhost awk echo bash bin bash 2 bash subshell 記錄當前子...