shell變量的簡介

    我們在使用shell時,經常會碰到shell變量這個名詞,那麼,什麼是shell變量呢?shell變量就是在shell程序中保存系統和用戶所需要的各種各樣的值。這個值就是變量,這個值可以由我們自己來定義。shell變量可以分爲以下幾種類型:
1 環境變量
2 預定義變量
3 位置變量
4 用戶自定義變量(也叫本地變量)
    1 首先講一下什麼是環境變量,環境變量是linux系統爲用戶提前設定好的一類shell變量,它的功能是設置當前shell中的工作環境,包括用戶的宿主目錄,命令查找的路徑等。
    我們如何查看我們的環境變量呢?我推薦大家使用#set | more命令,set命令用於查看系統的環境變量,由於環境變量可能會比較長,這是我們可以加上一個| more用於分頁查看。屏幕上輸出了很多信息,我們該怎麼看這些信息呢?舉個簡單的例子,“BASH=/bin/bash”等號左邊的代表變量名稱,右邊代表變量值。還有沒有別的方法查看環境變量呢?答案是有,我們可以使用#echo $BASH命令,請注意,echo語句的作用是顯示字符串或shell變量的值,當使用“$變量名”作爲echo的輸出命令參數的時候,就顯示的是指定的變量值。如果不加“$”,則表示輸出echo後面的字符串。
    下面講一下常見的環境變量:
    USER表示當前登入用戶的名稱
    UID表示當前登入用戶的UID號
    SHELL表示當前登入用戶使用的shell
    HOME表示當前用戶登入的宿主目錄
    PWD表示當前登入用戶所在的位置
    PATH表示用戶敲入命令的搜索路徑,我們在linux執行的命令一般都位於/XX/bin下面,我們每次敲命令都不需要將路徑輸入完整這就是PATH變量的功勞,shll程序根據PATH變量中設定的路徑會自動搜索命令。
    PS1和PS2分別代表主提示符和輔提示符。主提示符是用戶在命令行狀態下看到的提示符字符串,如[root@localhost ~]#之類的。輔提示符是用於我們如果輸入一個比較長的命令的時候需要換行的時後,在命令的第二行出現的提示符,默認爲“>”。如何換行呢?只需要在命令的行尾輸入“\”回車即可。
    說完常見的環境變量,再說說環境變量配置文件。環境變量配置文件可以分爲全局配置文件和用戶配置文件。
    全局配置文件:profile和bashrc,profile負責全局環境設置,並應用於說有用戶登入的shell;bashrc用於定義全局函數和別名。這兩個配置文件都位於/etc目錄下,修改全局配置文件需要root權限。
    用戶配置文件:.bash_profile和.bashrc。.basj_profile的作用類似於全局環境變量的profile,但只對當前用戶起作用;.bashrc的作用類似於全局環境變量的bashrc,用於定義函數和別名。這兩個文件分別位於當前登入用戶的宿主目錄下,由於是隱藏文件,用戶可以使用ls -al命令來查看。如果對用戶的配置文件做了錯誤的修改,可以通過複製/etc/skel/目錄下模板的所有文件複製到宿主目錄中,從而恢復初始配置。
    2 預定義變量
    預定義變量是系統中已經定義好的變量,我們只能使用預定義變量而不能創建或修改它。預定義變量的格式爲“$”符號加上另外一個符號組成的。下面介紹一些常見的預定義變量。
    $#表示位置參數的數量
    $*表示所有位置參數的內容
    $?表示表示命令執行後返回的狀態,它用於檢查上一個命令執行是否正確;當你輸入#$?後顯示的值爲0則表示之前輸入到值爲正確的;若爲其它值都代表錯誤的。
    $$表示當前進程的進程號
    $!表示後臺運行的最後一個進程的進程號
    $0表示當前執行的進程名
    3 位置變量
    位置變量與shell腳本程序所執行時使用的命令參數行對應,命令行中的參數是按照從左到右順序付給位置變量的。
    4 用戶自定義變量(本地變量)
    用戶自定義變量顧名思義就是用戶自己定義的變量,只在自己的系統中有效。設置方法爲#DAY=Sunday,使用方法爲#echo $DAY命令輸出的格式爲Sunday。這個定義的變量只能在當前shell中使用,要是想在其他shell中使用的話,就必須將它設置爲全局變量,方法爲#export DAY即可在任何本地shell中生效。如果你想刪除用戶自定義變量,那麼就要使用#unset DAY即可,unset命令無論是否輸出爲全局變量,都可以刪除。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章