1. 變數
1) 名稱:字母、數字、下劃線組成,數字不能開頭
2) 在bash中,變數的預設型別都是字串型,別的型別要指定
2. 變數分類
1) 本地變數(使用者變數):區域性變數只在建立它們的shell中使用,也可以修改
2) 環境變數:可以在建立它們的shell及其派生出來的任意子程式中使用和修改(有些變數是使用者建立,其他則是專用的)
3) 內部變數:由系統提供,使用者不能修改
3. 本地變數
1) 變數名=值
2) 注:
a) 等號兩邊不可以有空格
b) 取值包含空格,必須用雙引號括起來
c) shell變數區分大小寫
4. 變數的宣告和使用
1) 不用宣告型別
2) 格式:變數=值
3) 變數的引用
a)變 量名
b)變數名 b)
變數名b
) (建議使用這個)
5. 顯示變數
1) echo命令可以顯示單個變數取值,變數名前加$
6. echo顯示輸出
1) echo會將輸入的字串送往標準輸出。輸出的字串間以空白字元隔開, 並在最後加上換行號
2) -n:不要在最後自動換行
-help:顯示幫助
-version:顯示版本資訊
7. 清除變數
1) 格式:unset 變數名
8. 環境變數
1) 可以在命令列中設定,但使用者登出時這些值將丟失
2) 環境變數均為大寫
3) 必須用export命令匯出
4) 設定:
name=value
export name
5) 顯示:
env:顯示所有的環境變數
echo $環境變數名(顯示乙個)
6) 清除:unset 環境變數名
7) 讓環境變數的修改在退出shell再次登入時仍有效,需要在相關配置檔案中修改
bash的初始化檔案有:/etc/profile、/.bash_profile、/.bash_login、/.profile、/.bashrc、/etc/bashrc
9. 環境變數配置檔案
1) /etc/profile:存放一些全域性變數(如path,user)
2) ~/.bash_profile:輸入專用於自己使用的shell資訊;當使用者登入時,該檔案僅僅執行一次
3) ~/.bashrc:包含專用於自己的bash shell的bash資訊;當登入時以及每次開啟新的shell時,該檔案被讀取
4) /etc/bashrc:為每乙個執行bash shell的使用者執行此檔案;當bash shell被開啟時,該檔案被讀取
10. 環境變數配置檔案的作用
1) 登入linux先啟動系統配置檔案/etc/profile,並從/etc/profile.d目錄的配置檔案中蒐集shell的設定,為系統的每個使用者設定環境資訊
2) 使用者配置檔案~/.bash_profile,每個使用者專用於自己使用的shell資訊,僅使用者登入時執行一次!
預設情況下,此檔案通過指令碼執行同目錄下使用者的.bashrc檔案
3) ~/.bashrc檔案包含專用於使用者bash shell的bash資訊,登入及每次開啟新的shell時都會執行。裡面又會呼叫/etc/bashrc
11. 設定使用者自己的環境變數
12. 環境變數舉例
1) home:使用者的家目錄
2) shell:目前這個環境使用的shell是哪個程式
3) path:執行檔案搜尋的路徑
13. 內部變數
1) 部分內部變數:
$#:總共有#個引數
$?:返回值;0沒有錯誤,其他數字有錯
$0:shell程式的名稱
$@:全部引數
$*:『引數1』…形式儲存的引數
$n:第n個引數
$$:本程序的pid
2) 位置引數及引用
Linux Shell中的變數 位置變數
note that 與其他程式語言不同,bash中的變數沒有資料型別的區別,變數中的值都是以字串的形式儲存的,如果要進行數值計算,需要進行特殊轉換 linux shell下的變數按其使用目的可分為3種型別 環境變數 用於儲存作業系統執行時使用的環境引數 位置變數 bash將傳遞給指令碼的引數儲存在位...
Linux Shell程式設計中的特殊變數
大家都知道普通的bash命令後邊可以跟任意的引數 例如在啟動hbase的客戶端的時候,我們在hbase的bin目錄下使用.hbase shell進入到hbase的客戶端 那我們自己編寫的指令碼是否也支援傳遞引數呢?答案當然是肯定的,但是怎麼編寫這樣的shell程式呢?這就需要使用到位置引數。位置引數...
Linux shell 指令碼中變數的數學計算
首先從乙個例子說起 x 1 1 echo x 你是不是期待著輸出2啊?讓你失望了,這樣輸出的結果是1 1。1 首先看第一類方法 宣告變數的型別 我對上述程式做出以下修改 declare i x x 1 1 echo x 在上述指令碼中我把x宣告為整型數字 integer 型別,這時輸出結果為2 或者...