Skip to content

Linux shell 變數相關用法整理(一): assign, echo, export, unset

davidlei

假設常用的資料夾路徑是 /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

變數的設定規則

  1. = 連結變數名稱與值,等號兩側不能有空格:
$ var=something   // 正確
$ var = something // 等號兩邊不得有空格
  1. 變數名稱開頭不能是數字
  2. 變數內容若含有空白字元,可以用雙引號 " 或單引號 ' 包起來
  1. 用跳脫字元 \ 可以把特殊符號轉成一般字元:

  2. 用現有變數組合出新變數時,有兩種寫法:

假設團隊的工作目錄是 /davidlei/project/,已設置變數 $work。現在 $work 路徑下有兩個子目錄 project1project2,想分別用 workdir1workdir2 兩個變數來代表它們,可以使用下面兩種方式:

  1. 若要把變數設定成全域變數,需要使用 export
$ var=xxx
$ export var

這樣宣告的全域變數並不等同於環境變數,關閉 bash 後變數資料就會清除。

  1. 取消變數使用 unset

reference

Edit this post
Previous
docker volume 用法整理
Next
Linux shell 變數相關用法整理(二): read, declare, array