當前位置:首頁 > IT技術 > 系統(tǒng)服務 > 正文

Linux shell 環(huán)境變量及有效范圍
2021-09-17 11:53:11

每當我們使用ssh客戶端遠程登陸一個服務時,操作系統(tǒng)就會給我們分配一個新的shell,并且這個shell繼承了操作系統(tǒng)的永久環(huán)境變量。在當前的shell執(zhí)行一個sh文件,都會臨時產生一個子shell,該文件執(zhí)行完畢后,將自動返回到父shell。

子shell會繼承父shell的所有永久環(huán)境變量和臨時環(huán)境變量。

父shell不能使用子shell中定義的變量和環(huán)境變量。

?

1.永久環(huán)境變量

/etc/profile? 永久生效,對所有用戶有效,需要重啟
/etc/bashrc 永久生效,對所有用戶有效,無需重啟
~/.bashrc??? 永久生效,僅對當前用戶所屬的shell有效

2.臨時環(huán)境變量
var=value
export var
僅對當前的shell及子shell有效。

3.普通變量
shell中的普通變量很簡單, 僅能被當前shell訪問, 不能被其子進程訪問, 更不能被其它shell訪問。

?

常見場景:

1.引用環(huán)境變量聲明文件

我們在deploy一個項目的時候,經常用到。如果編寫的shell腳本,想引入一個用于聲明臨時環(huán)境變量的文件,并且在該腳本中使用相關變量,可以使用source命令。

例如:SetEnv.sh 中聲明了普通的變量和臨時環(huán)境變量。

#!/bin/bash

hostname=`hostname`

weblogic_home=/opt/weblogic/
export weblogic_home

在verify.sh中,使用source讀入SetEnv.sh文件內容并自動執(zhí)行后,就可以使用SetEnv.sh中的變量。

#!/bin/bash
source ./SetEnv.sh

echo $hostname
echo $weblogic_home

Linux source命令:

通常用法:source filepath 或 . filepath

功能:使當前shell讀入路徑為filepath的shell文件并依次執(zhí)行文件中的所有語句,通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。例如,當我們修改了/etc/profile文件,并想讓它立刻生效,而不用重新登錄,就可以使用source命令,如source /etc/profile。

source命令(從 C Shell 而來)是bash shell的內置命令;

點命令(.),就是個點符號(從Bourne Shell而來)是source的另一名稱。這從用法中也能看出來。

本文摘自 :https://blog.51cto.com/b

開通會員,享受整站包年服務立即開通 >