linux轉義引號
A. linux中的雙引號的作用
在Linux中雙引號可以取消分隔符的轉義,空格算不算?能不能舉個例子??
還有,find "/home/tmp" -name "*.*" -atime +10 -ok rm -f {} ; 對於這條shell語句中的"*.*",不是說雙引號取消通配符的作用嗎,那麼它不就成了尋找*.* 這個文件了嗎?
雙引號里可以套變數,單引號里不能套變數。
Linux的三中引號:雙引號 " " ,單引號 ' ', 還有就是反引號 ` `
單引號和雙引號的作用是差不多的,在裡面的結果都是字元串,比如
a="date" ,b='date' 這兩個是一樣的。
反引號的作用就不一樣了,反引號是把裡面的當作一個命令來執行,比如
c=`date`
當 echo $a $b $c的時候 結果就分別是
date date 2014-11-1 20:33
(1)linux轉義引號擴展閱讀:
Linux操作系統是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。
B. 如何進入linux下有空格的文件夾,轉義引號都沒用
有時候需要創建帶有空格的文件夾,雖然這不是一個好的習慣,但是偶爾會遇到。用的最多的是很多時候需要進入帶有空格的文件夾,如"a b"是一個文件夾名。 創建:mkdir "a b" mkdir 'a b' mkdir a\ b 進入:cd "a b" cd 'a b' cd a\ b 由上可見,需要在帶有空格的文件夾名前面加上引號(單引號或者雙引號),另一種方法是在空格前面加\,\的意思是後面還有字元的意思。 切記,直接輸名字是無法操作成功的,如已經創建了文件夾"a b",直接終端輸入cd a b會出現沒有a文件夾的錯誤。
C. linux下正則匹配帶引號和不帶引號的區別
應該是引號裡面的,shell 不轉義。沒引號的,shell 先自己轉義一下。
所以,有的時候你可能會看到奇葩的 \\\x 的命令行,這個其實是兩次轉義。\\ 是讓 shell 轉義為 \ ,後面的 \x 是讓 shell 轉義 x 。這樣命令收到的參數,就成了 \x 。(x 可以是很多東西,我以前遇到過 " ,也就是雙引號)。
典型的 { } 就是 shell 會進行處理的東西,需要轉義或者用引號括起來防止處理。但是 [ ] 我記得 shell 好像沒有用處吧?
另外再說一下 shell 的處理, ' 裡面的不轉義(不是全部,好像是只轉義一些內容)," 裡面的依然會轉義。
D. linux 命令行下怎麼輸入單引號
Linux命令行中輸入特殊字元,比如回車、$、!、空格、單引號等,需要利用反斜杠(\)轉義特殊字元,就是把反斜杠\加在特殊字元的前面,反斜杠也被稱為轉義字元。
E. Linux shell 中單引號字元串裡面有單引號字元怎麼辦
Linux shell 中單引號字元串裡面有單引號字元解決:
$echo"mocha。reporter('spec')"|sed"s/'spec'/'json'/"
mocha.reporter('json')
有單引號的情況就用雙引號唄
$echo"mocha.reporter('spec')"|sed$'s/'spec'/'json'/'
mocha.reporter('json')
或者也可以這樣、加個$讓bash轉義
控制字元
轉義字元不屬於控制字元;控制字元也不屬於轉義字元。如果控制字元的定義是非圖形的字元,或者對輸出設備(列印機、文本終端)有特殊意義的字元,那麼針對這些設備的轉義字元也是控制字元。但是程序設計用的轉義字元是圖形字元,因此它們不是控制字元。相反地,大多數ASCII控制字元單獨都具有控制功能,因此它們不是轉義字元。
F. 問一個Linux命令"\>",這個引號中的是什麼意思
看看下面這個示例就能明白:
> 在shell命令中有特殊含義,用於標准輸出的重定向。此例中,後面未指明重定向的目標文件(直接敲回車,會將換行符newline認為是目標文件),所以報錯。
在>前面加上,就可以對>進行轉義,即屏蔽其特殊含義,僅表示字元本身的字面含義。於是,此例中正確輸出了 > 符號。
G. linux vi中,雙引號需要轉義嗎
假如你的文件是以「.php」為結尾的話,正常情況下是不需要轉義符的。但如果你是在一段已經有雙引號("")包圍的代碼中間插入如:類似的代碼,確實有可能需要轉義符。
H. linux下打入雙引號為什麼要打兩次
一般使用C語言式的字元串轉義,用\"表示一個",用\\表示\,但具體還要看運行環境,如果不支持那就用單引號做最外層引號,裡面用雙引號做內容
I. Linux下配置文件中參數帶引號和不帶引號的區別
單引號:
可以說是所見即所得:即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。單引號''是全引用,被單引號括起的內容不管是常量還是變數者不會發生替換。
雙引號:
把雙引號內的內容輸出出來;如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來。雙引號""是部分引用,被雙引號括起的內容常量還是常量,變數則會發生替換,替換成變數內容。
不加引號:
不會將含有空格的字元串視為一個整體輸出, 如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來,如果字元串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引號,一般連續的字元串,數字,路徑等可以用。
使用規則:
一般常量用單引號''括起,如果含有變數則用雙引號""括起。
最大不同:
單引號與雙引號的最大不同在於雙引號仍然可以保有變數的內容,但單引號內僅能是一般字
元,而不會有特殊符號
使用舉例:
「」號裡面遇到$,\等特殊字元會進行相應的變數替換
『』號裡面的所有字元都保持原樣
對於字元串,兩者相同
匹配模式也大致相同
但有一些區別非常容易混淆
grep "$a" file #引用變數a,查找變數a的值
grep '$a' file #查找「$a」字元串
grep "\\" file #grep: Trailing backslash(不知原因)
grep '\\' file #查找『\』字元
1、$ 美元符
2、\ 反斜杠
3、` 反引號
4、"雙引號
這四個字元在雙引號中是具有特殊含義的,其他都沒有,而單引號使所有字元都失去特殊含義
如果用雙引號,查找一個\,就應該用四個\:
grep "\\\\" file 這樣就對了,這樣等同於:
grep '\\' file
第一條命令shell把四個\,轉義成2個\傳遞給grep,grep再把2個\轉義成一個\查找
第二條命令shell沒轉義,直接把2個\傳遞給grep,grep再把2個\轉義成一個\查找
其實grep執行的是相同的命令
J. linux中雙引號單引號和不加引號的區別嗎
雙引號里可以識別變數
單引號就是純字元串
# i=111111
# echo "$i"
111111
# echo '$i'
$i
# echo $i bash
111111 bash
但是不加引號,有時候在腳本里需要區分命令和字元串,就必須加引號,養成良好習慣