Linux學習之八 利用變數

2022-02-07 13:18:35 字數 2206 閱讀 9920

一、變數的使用

用$放在變數前面進行使用,例如:

echo $path

為了和別的字元隔開,可以用{}和"",例如

echo $nic

echo "$path"nic

二、變數的定義規則

1. 變數名稱只能是英文本母與數字,但是開頭字元不能是數字

2. 變數與變數內容以=鏈結, 等號兩邊不能直接接空格符,如下所示為錯誤: 『myname = vbird』或『myname=vbird tsai』

3. 變數內容若有空格符可使用雙引號『"』或單引號『'』將變數內容結合起來,但雙引號內的特殊字元如 $ 等,可以保有原本的特性,而單引號內的特殊字元則僅為一般字元 (純文字)

4. 可用\將特殊符號變成一般字元;

5. 在一串指令中,如果還需要由其他指令提供的資訊,可以使用反單引號『`指令`』或 『$(指令)』。`是鍵盤上方的數字鍵 1 左邊那個鍵,而不是單引號! 例如想要取得核心版本的設定可以這樣:

echo $version`version=$(uname -r)`

6. 通常大寫字元為系統預設變數,自行設定變數可以使用小寫字元

7. 可以定義陣列,用var[index]=content的方式定義

8. 預設定義的是字串型別,若要定義其他型別需要用declare來定義

declare [-aixr] variable

選項與引數:

-a :將後面名為 variable 的變數定義成為陣列 (array) 型別

-i :將後面名為 variable 的髮量定義成為整數數字 (integer) 型別

-x :用法與 export 一樣,就是將後面的 variable 變成環境髮量;

-r :將髮量設定成為 readonly 型別,該髮量不可被更改內容,也不能 unset

三、定義環境變數

若變數需要在其他子程式執行,則需要以 export 來使變數變成環境變數:

export path

四、取消變數

unset paraname

五、常用環境變數

用env可以列出目前shell環境下的所有環境變數

home 代表使用者的家目錄。

shell 目前這個環境使用的shell 是哪支程式? linux 預設使用 /bin/bash

histsize 我們曾經下達過的指令可以被系統記錄下來,而記錄的『筆數』則是由這個值來設定的。

mail 當我們使用 mail 指令收信時,系統會去讀取的郵件信箱檔案 (mailbox)。

path 就是執行檔案搜尋的路徑

lang 編碼設定

random 0到32767之間的隨機數

六、用set可以觀察所有變數

$:本 shell 的 pid

echo $$出現的數字就是你的 pid 號碼。

?:上個執行指令的回傳值

如果執行正確則回傳0

七、 變數的更改

變數設定方式                     說明

$  若變數內容符合『舊字串』則『第乙個舊字串會被新字串取代』

$ 若變數內容符合『舊字串』則『全部的舊字串會被新字串取代』

變數設定方式         str 沒有設定             str 為空字串         str已設定且非空

var=$  var=expr                var=                      var=$str

var=$ var=expr                var=expr                var=$str

var=$  var=                      var=expr                var=expr

var=$ var=                      var=                      var=expr

var=$ str=expr var=expr   str不變 var=            str不變 var=$str

var=$ str=expr var=expr  str=expr var=expr   str不變 var=$str

var=$   expr 輸出至 stderr   var=                       var=$str

var=$  expr 輸出至 stderr   expr 輸出至 stderr    var=$str

Linux學習之八(shell bash)

一 umask 遮罩碼 檔案預設不能具有執行許可權,如果算得的結果中有執行許可權,則將其許可權加1 檔案 666 023 643 目錄 777 022 754 二 使用者登入的角度來說,shell的型別 登入式shell 正常通常某終端登入 su username su l username 非登入...

linux 執行緒學習之條件變數

下面是乙個簡單的例子,我們可以從程式的執行來了解條件變數的作用。include include include pthread mutex t mutex pthread mutex initializer 初始化互斥鎖 pthread cond t cond pthread cond initia...

linux 執行緒學習之條件變數

互斥鎖 用來上鎖。條件變數 用來等待,當條件變數用來自動阻塞乙個執行緒,直到某特殊情況發生為止。通常條件變數和互斥鎖同時使用。函式介紹 1 名稱 pthread cond init 目標 條件變數初始化 標頭檔案 include pthread.h 函式原形 int pthread cond ini...