Linux 下Shell變數,環境變數的聯絡與區別

2022-06-29 12:57:10 字數 4499 閱讀 7957

linuxshell變數,環境變數的聯絡與區別

by:授客qq1033553122

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 記錄當前子...