shell變量

shell變量

一、分類

    配置文件,生效範圍劃分,存在兩類:

        全局配置:

    /etc/profile, /etc/profile.d/*.sh

    /etc/bashrc

個人配置:

            ~/.bash_profile

            ~/.bashrc

    按功能劃分,存在兩類:

        profile類:爲交互式登錄的shell提供配置

    /etc/profile, /etc/profile.d/*.sh

    ~/.bash_profile

        功用:

    (1) 定義環境變量,例如PATH、PS1

    (2) 運行命令或腳本

        bashrc類:爲非交互式登錄shell提供配置

    /etc/bashrc

    ~/.bashrc

        功用:

    (1) 定義命令別名;

    (2) 定義本地變量;


二、變量

    變量名指向一個臨時的內存地址空間

    類型:

環境變量:作用範圍當前shell進程及其子進程

本地變量:作用範圍當前shell進程

局部變量:作用範圍僅爲當前shell進程中某代碼片斷(通常爲函數上下文)

        位置變量:$1, $2

        特殊變量:$?


    變量定義方式:

bash內置變量:可直接調用,內置了許多環境變量,例如PATH等

自定義變量:變量名

    變量賦值:變量名=值

定義本地變量:

name=value

查看:set


定義環境變量:

export name=value

declare -x name=value

查看:env, printenv, export

撤消變量:

unset name

引用變量:

${name}, $name

bash中的引用符號:

'': 強引用,變量替換不會發生

"":弱引用

``: 命令引用

三、用戶登錄

    shell登錄類型:

交互式登錄:

    直接通過終端進行的登錄;

    通過su -l Username命令實現的用戶切換;

非交互式登錄:

    圖形界面下打開的命令行窗口;

    執行腳本;

    su Username;


    登錄時配置文件作用次序:

交互式登錄:

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登錄:

~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

    編輯配置文件定義的新配置如何生效?

(1) 重新登錄;

(2) 讓當前shell進程去重新讀取指定的配置文件;

    source /PATH/TO/SOMEFILE

    ./PATH/TO/SOMEFILE


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章