昨天有以一個簡單的腳本展示了變數、輸出等最基本的功能,今天來介紹這些元素的細節,以免之後寫腳本踩雷。
符號 | 名稱 | 意義 |
---|---|---|
$ | 變數 | 取變數名稱對應的值 |
# | 註解 | |
\ | 跳脫符號 | 特殊及萬用字元還原成一般字元 |
| | 管線 | |
; | 分隔連續指令符號 | |
$ | 工作控制 | 將指令變成背景執行 |
/ | 目錄符號 | 分隔路徑 |
>,>> | 資料重導向(輸出) | |
<,<< | 資料重導向(輸入) | |
'' | 單引號 | 無法取變數值 |
"" | 雙引號 | 可以取變數值 |
`` 或是 $() | 裏面包執行的指令 | |
() | 子 shell的始末 | |
{} | 中間爲命令區塊 |
符號 | 功能 |
---|---|
* | 0到無窮多個任意字元 |
? | 一個以上的任意字元 |
[] | 一個以上括號內的字元 |
- | 編碼範圍內的所有字元,例如[0-9]代表0到9之間的所有數字 |
^ | 後面接的字元都不要,例如[^0-9]代表0-9之間的所有字元都不接受 |
在設定變數值的時候,記得變數、賦值運算子(=)、變數值中間沒有空白,否則會有錯誤。
var1="環境變數的值是 $PATH"
echo $var1
var1="$var1"我這個字串附加可以向這樣直接附加在$var1的後面~
輸出結果:
環境變數的值是 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
環境變數的值是 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
var2=$(ls /home)
echo "ls 的執行結果 $var2"
執行結果:
aming lost+found
var3='環境變數的值是 $PATH'
echo $var2
var4="環境變數的值是 \$PATH"
輸出結果:
環境變數的值是 $PATH
一個系統環境可能會有常用的路徑或是預設的字元編碼,因此環境變數儲存這些系統資訊,方便查閱或是切換路徑。
env
: 查看所有環境變數set
: 查看所有環境變數與一般變數export
:設定一般變數成爲環境變數如果你希望你的子程序能夠使用父程序的一般變數的話,可以透過 export
轉換一般變數成爲環境變數,就會產生繼承的效果。