Linux shell 變數相關用法整理(一): assign, echo, export, unset
Contents
假設今天我們常用的資料夾路徑是在 /path1/workdir/project1/module...
每次登入 linux
環境都要切換到這個資料夾我們就需要重新輸入路徑
$ cd /path1/workdir/project1/module...
我們這時候就可以用一個變數來取代常用的字串
在這之前先介紹一下變數的取用
echo
$ echo $HOME
/home/davidlei
$ echo ${HOME}
/home/davidlei
取出 Home
這個變數的值並且顯示出來
在 Linux 底下變數前面都需要加上 $ 符號來做辨識 也可以在 $ 符號後面用 {} 把變數名稱框起來
回到一開始提到的案例,我們現在想要設置一個變數 work
來存放 /path/workdir/project1/module
$ echo $work
// 還未設置的變數默認為空,echo 出來的結果是空
$ work=/path1/workdir/project1/module
$ echo $work
/path1/workdir/project1/module
變數的設定規則
- 設定變數中間以 “=” 連結,並且等號兩側不能有空格
$ var=something // 正確
$ var = something // 等號兩邊不得有空格
- 變數開頭不能是數字
- 變數內容含有空白字元可以用 "" 雙引號 或者 '’ 單引號包起來
-
如果變數內容包含著其他變數,需要用 "" 包起來,請看下方範例 用 ’’ 包起來
bash
就不會把$變數
置換成該變數的內容。
-
用跳脫字元
\
可以特殊符號置換成一般字元 -
如果要用現有的變數組合成新的變數的時候有兩個寫法
假設今天我們團隊主要的工作目錄是在 /davidlei/project/
,一開始建立目錄的時候我們把這個路徑設了一個變數 $work
現在假設 $work
路徑底下有兩個子目錄 project1
, project2
我們想用 workdir1
, workdir2
兩個變數來代表這兩個 project 的路徑
我們可以用底下兩種寫法
- 若要把一個變數設定成全域變數還需要使用
export
$ var=xxx
$ export var
此方式宣告的全域變數不等於環境變數,把 bash 關掉之後變數資料就會清除
- 取消變數使用
unset