Linux shell中的變數

2021-09-12 02:34:51 字數 2553 閱讀 2493

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 或者...