literal和meta的意義和用法

2021-09-24 13:22:54 字數 1688 閱讀 5225

* literal:也就是普通純文字,對shell 來說沒特殊功能。

* meta:對shell 來說,具有特定功能的特殊保留字元。

(註一:關於bash shell 在處理command line 時的順序說明,

請參考o'reilly 出版社之learning the bash shell, 2nd edition‍

,第177 - 180 頁的說明,.

literal 

沒甚麼好談的,凡舉

abcd、

123456 這些

"文字"都是

literal ... 

但meta 卻常使我們困惑..... (confused?)

事實上,前兩章我們在command line 中已碰到兩個機乎每次都會碰到的meta :.

* ifs:由或或三者之一組成(我們常用space )。(該文來自net百科:www.csustnet.com)

* cr:由產生。

ifs 是用來拆解command line 的每乙個詞(word)用的,因為shell command line 是按詞來處理的。(該文來自net百科:www.csustnet.com)

而cr 則是用來結束command line 用的,這也是為何我們敲命令就會跑的原因。

除了ifs 與cr ,常用的meta 還有:..‍

.= : 設定變數。

$ : 作變數或運算替換(請不要與shell prompt 搞混了)。

> :重導向stdout。.

.< :重導向

stdin。

|:命令管線。

& :重導向

file descriptor ,或將命令置於背境執行。

( ):將其內的命令置於

nested subshell 執行,或用於運算或命令替換。

:將其內的命令置於

non-named function 中執行,或用在變數替換的界定範圍。

(該文來自net百科:www.csustnet.com)

&& :在前乙個命令結束時,若返回值為

true,繼續執行下乙個命令。

(該文來自net百科:www.csustnet.com)

|| :在前乙個命令結束時,若返回值為

false,繼續執行下乙個命令。

!:執行

history 列表中的命令

....

假如我們需要在

command line 中將這些保留字元的功能關閉的話,就需要

quoting 處理了。 在

bash 中,常用的

quoting 有如下三種方法:

* hard quote:

' ' (單引號

),凡在

hard quote 中的所有

meta 均被關閉。

* soft quote:

" " (雙引號

),在soft quoe 中大部份

meta 都會被關閉,但某些則保留

(如$ )。

(註二)  

* escape 

: \ (反斜槓

),只有緊接在

escape (跳脫字元

)之後的單一

meta 才被關閉。

( 註二:在soft quote 中被豁免的具體meta 清單,我不完全知道,

有待大家補充,或透過實作來發現及理解。)  

Literal和Label的區別

literal是用來在顯示網頁上顯示靜態文字,他和label 的區別主要在 label在轉譯成網頁時候使用html的標記為住控制項,literal不會所以使 比較簡單 literal不可以運用樣式,而且任意定位比較麻煩,你用gridlayout不局就會發現即使那樣也很難 literal這個和labe...

Literal控制項的用法

1 literal的一般用法,與label對比 msdn上的解釋 使用 system.web.ui.webcontrols.literal 控制項在網頁上保留顯示文字的位置。literal 控制項與 label 控制項類似,但 literal 控制項不允許對所顯示的文字應用樣式。可以通過設定 tex...

Literal控制項與Label控制項的對比

1 literal的一般用法,與label對比 msdn上的解釋 使用 system.web.ui.webcontrols.literal 控制項在網頁上保留顯示文字的位置。literal 控制項與 label 控制項類似,但 literal 控制項不允許對所顯示的文字應用樣式。可以通過設定 tex...