BASH
2023.06
1
Outline
2
Quoting
Escape Character
Single Quotes
Double Quotes
介紹幾個特殊意義的字元
Parameters
Positional Parameters
Special Parameters
Shell Variables
Quoting
3
Quoting�
1. 跳脫字元 Escape Character ( \ )
因為有些字元有特殊意義,如果要保留字元字面上的意義,可� 以在字元前加上跳脫字元。�
如果在跳脫字元後接的是換行字元 \<newline>,則有連接行的� 意思
4
Quoting�
2. 單引號 Single Quotes ( ' )
被兩個單引號包起來的特殊字元不會� 被解釋為特殊意義,所以不需要加上� 跳脫字元�
單引號無法被放在兩個單引號中間,� 就算用跳脫字元也一樣不行,因為跳� 脫字元在兩個單引號中不會被解釋為� 跳脫字元的意義
5
Quoting�
3. 雙引號 Double Quotes ( " )
在兩個雙引號中的特殊字元會有特殊意義,所以如果想要保留特殊字元字 面的意義,可以在前面加上跳脫字元,因為此時跳脫字元會被解釋為跳脫 字元的意義�
6
Quoting�
\b BACKSPACE
\f FORM FEED
\n NEWLINE
\t TAB
\v VERTICAL TAB
\\ \” \` 把後面的特殊字符印出來
\0nnn(one or three oct digits)印出字元(ASCII轉8進位)
\xHH(one or two hex digits) 印出字元(ASCII轉16進位)�
7
shopt -s xpg_echo
Parameters
8
Parameters�
使用set指令
9
Bash版本
Shell options
用來啟用和關閉 Shell 的一些功能選項的
想要知道更多參數可以到https://linux.die.net/man/1/bash
Parameters�
sh test.sh what a good day!
10
$0
$1
$2
$3
$4
Parameters�
* :包含所有輸入的參數,$@ 即代表 $1, $2,....直到所有參數結� 束。$* 將所有參數無間隔的連在一起,存成一個單一的參� 數。也就是說 $* 代表了 "$1 $2 $3..."。
@ :包含所有輸入的參數,$@ 用將所有參數以空白為間隔,存在 $@ 中。也就是說 $@ 代表了 "$1" "$2" "$3"....。
# :執行時,給這個 Shell Script 參數的個數
? :表示上一個指令的離開狀況,一般指令正常離開會傳回 0。不 正常離開則會傳回 1、2 等數值。
$ :這一個 shell 的 process ID number
11