看看下面這個(gè)示例就能明白:
創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):眉山聯(lián)通機(jī)房,成都服務(wù)器租用,眉山聯(lián)通機(jī)房,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。
在shell命令中有特殊含義,用于標(biāo)準(zhǔn)輸出的重定向。此例中,后面未指明重定向的目標(biāo)文件(直接敲回車,會(huì)將換行符newline認(rèn)為是目標(biāo)文件),所以報(bào)錯(cuò)。
在前面加上\,就可以對(duì)進(jìn)行轉(zhuǎn)義,即屏蔽其特殊含義,僅表示字符本身的字面含義。于是,此例中正確輸出了 符號(hào)。
很多剛學(xué)寫shell的人經(jīng)常有個(gè)疑問(wèn),為什么if后面要加上空格?
比如下面第1行會(huì)報(bào)錯(cuò),第2行正常
原因參考第3行命令,whereis [
可見左中括號(hào)是個(gè)單獨(dú)的命令文件!
前后不加空格跟其它字符連接起來(lái),那就不是 [ 這個(gè)命令了
括號(hào)要用轉(zhuǎn)義 :\( xxx \)
此外,輸入文件名時(shí)只要輸入前幾個(gè)字符,然后按TAB鍵自動(dòng)補(bǔ)全,這樣出來(lái)的文件名就是沒(méi)問(wèn)題的,會(huì)自動(dòng)加上轉(zhuǎn)義的。
例如:
文件夾名是file(20170605) 打開的話需要輸入 cd file\(20170605\) 就能打開了。
擴(kuò)展資料:
注意事項(xiàng)
bash中變量有兩種,分別是環(huán)境變量和自定義變量,可以理解為全局變量和局部變量,在理解的區(qū)別前,需要知道副程序和子程序,舉個(gè)例子,當(dāng)前的bash我們稱之為父程序,而在這個(gè)bash下執(zhí)行的任何程序,都稱之為子程序。
那全局變量和局部變量的區(qū)別就是,全局變量在子程序中仍然有效,局部變量只在當(dāng)前程序中生效。
注意,一旦退出父程序這個(gè)bash的話,無(wú)論是全局變量還是局部變量都失效了,再次打開bash時(shí),該變量是不存在的。
linux5.0之后,是不能帶有括號(hào)的,這個(gè)時(shí)候就需要轉(zhuǎn)譯了。轉(zhuǎn)譯的方法有下面兩種:
rm -f index.php"(1)"
rm -f index.php\(1\)