日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Unix中利用轉(zhuǎn)義和引用來管理元字符( 二 )


另外需要注意的是,這個轉(zhuǎn)義字符本身就是一個比較特殊的元字符 。如果用戶想在命令或者文件名中使用這個符號的話,也需要采用轉(zhuǎn)移字符 。如用戶想利用echo或者printf命令顯示網(wǎng)址 。在網(wǎng)址中就有很多符號,此時就需要采用轉(zhuǎn)義字符來讓系統(tǒng)將符號當(dāng)作普通字符來對待 。
二、利用引用來解決元字符的問題 。
除了可以利用上面談到的引用功能來處理這些元字符以外,還可以采用引用這個功能來解決 。簡單的說,就是將一個命令參數(shù)放置在一對引號之內(nèi),則這個引號之內(nèi)內(nèi)容如果有元字符的話,則這些元字符將不起作用 。那么既然轉(zhuǎn)義功能已經(jīng)可以解決元字符的問題,系統(tǒng)還提出了一個引用的解決方案,是否多次一舉呢?其實不然 。當(dāng)一個命令行中含有多個元字符的時候,需要在每個元字符前面加一個轉(zhuǎn)移字符 。為此此時如果采用轉(zhuǎn)義字符來解決這個元字符的問題時,會非常的繁瑣 。此時如果采用引用機(jī)制來解決元字符的問題時,可能會更加的理想 。如現(xiàn)在系統(tǒng)工程師希望能夠在屏幕上打出如下信息(這是一個共享文件的路徑):192.128.11.3shareITsoftwarepdf 。如果采用轉(zhuǎn)移字符的話,該如何寫呢?由于這個輸出結(jié)果中有四個元字符(轉(zhuǎn)義字符),為此管理員不得不用四個轉(zhuǎn)移字符來處理 。即要寫成echo 192.128.11.3shareITsoftwarepdf 。這顯然非常的麻煩 。遇到這種情況時,如果采用引用的話,顯然會更加的合適 。如采用引用機(jī)制,只需要將這個命令寫為即可:
echo ‘192.128.11.3shareITsoftwarepdf’
將一大串命令采用單引號因起來 。則系統(tǒng)會將命令行中的一些元字符都當(dāng)作普通字符來對待 。即不需要為每一個元字符采用轉(zhuǎn)移字符 。顯然這個引用解決方案要比采用轉(zhuǎn)義字符來解決要方便的多 。
在采用引用機(jī)制來處理元字符時,需要注意跟雙引號的區(qū)別 。如現(xiàn)在有如下三個命令echo $JAVA_HOME、echo ‘$JAVA_HOME’、 “echo $JAVA_HOME 。其中$JAVA_HOME表示應(yīng)用程序Java的環(huán)境變量 。此時如果系統(tǒng)工程師依次運(yùn)行上面這三個命令,會有什么結(jié)果呢?第一個命令會正常顯示Java的環(huán)境變量;第二個命令直接顯示$JAVA_HOME,即已經(jīng)將元字符$當(dāng)作普通字符來對待 。第三個命令的話仍然顯示Java的環(huán)境變量 。可見雙引號與單引號在引用機(jī)制上,還是有所不同的 。那么他們到底有什么差異呢?總的來說,系統(tǒng)工程師需要注意如下內(nèi)容 。單引號會保護(hù)里面所有的元字符,即遇到元字符時會告訴系統(tǒng)當(dāng)作普通字符來對待 。但是如果采用了雙引號,則系統(tǒng)會將單引號之間的內(nèi)容解釋為命令行 。如會將$當(dāng)作環(huán)境變量的前綴等等 。其實單引號與雙引號還有一種相互保護(hù)的作用 。即雙引號保護(hù)其中的單引號,而單引號保護(hù)其中的雙引號 。因為無論是雙引號還是單引號本身就都是元字符,可以通過引用機(jī)制來進(jìn)行保護(hù) 。不過在遇到單引號與雙引號(都當(dāng)作普通字符)都存在的情況下,筆者建議還是采用轉(zhuǎn)移字符來保護(hù)單引號或者雙引號為好 。這可以避免誤解,也容易提高代碼的可讀性 。同理,如果要將轉(zhuǎn)移字符 當(dāng)作普通字符來實用的話,那么最好也是利用單引號來保護(hù)這個轉(zhuǎn)移字符,而不是利用轉(zhuǎn)移字符來保護(hù)轉(zhuǎn)移字符 。這些雖然不影響實際的應(yīng)用,但是卻是提高代碼可讀性的有效手段 。
【Unix中利用轉(zhuǎn)義和引用來管理元字符】從以上的分析中可以看出,雖然轉(zhuǎn)移字符與引用機(jī)制等等都可以將元字符當(dāng)作普通字符來對待 。但是,兩者在實現(xiàn)的方法上還是有一定的差異 。為此最好能夠根據(jù)應(yīng)用場合的不同,在選擇合適的解決方案 。一般來說,兩者的差異只是實現(xiàn)方法上的差異,在具體的功能上沒有區(qū)別 。不過為了代碼的易讀性上考慮,選擇具體的解決方案是還需要慎重 。不過總的來說,系統(tǒng)工程師必須同時掌握這兩種方法 。然后根據(jù)不同的情況現(xiàn)在合適的解決方法 。如果光掌握一種解決措施,可能不能夠解決所有跟元字符相關(guān)的問題 。

推薦閱讀