亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

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

添加時(shí)間:2011-10-5  添加: admin 

  在Unix操作系統(tǒng)中有一類特殊的字符,叫做元字符。他們在系統(tǒng)中表示特殊的含義。如*號與?號,操作系統(tǒng)認(rèn)為這些元字符是通配符。如果在路經(jīng)、文件名或者命令參數(shù)中有這些元字符的話,就會(huì)引起操作系統(tǒng)的誤解。為此在系統(tǒng)中要采用一些方法,能夠讓操作系統(tǒng)將這些元字符當(dāng)作普通字符來對待。在Unix系統(tǒng)中,就是采用轉(zhuǎn)義和引用這兩種方式來處理。系統(tǒng)工程師需要明白的是,這兩種解決方案的差異。并在特定的情況下,采用合適的解決方式。

  一、轉(zhuǎn)義功能的應(yīng)用。

  其實(shí)轉(zhuǎn)義機(jī)制不僅僅在Unix操作系統(tǒng)上有,在其他的編程語言中也有類似的處理機(jī)制。如果各位讀者有程序開發(fā)經(jīng)驗(yàn)的話,那么可能更加容易了解這個(gè)轉(zhuǎn)義功能。簡單的說,轉(zhuǎn)義功能就是指在一些具有特殊含義的元字符前面加上一個(gè)轉(zhuǎn)義字符\,目的是告訴操作系統(tǒng)這是一個(gè)普通的字符,取消元字符的特殊意義。如*本來代表通配符,如ls *則表示所有的文件與目錄。而\*就是將*號當(dāng)作一個(gè)普通的字符來對待,系統(tǒng)不會(huì)再認(rèn)為其是一個(gè)通配符。

  這個(gè)轉(zhuǎn)義功能的普通應(yīng)用是比較簡單的,只需要在元字符前面加上\即可。不過筆者這里還需要強(qiáng)調(diào)轉(zhuǎn)義字符的幾個(gè)特殊的應(yīng)用。這些應(yīng)用雖然比較特殊,普通用戶平時(shí)不怎么用的到。但是對于系統(tǒng)工程師來說,這些功能可能就特別的有用。

  一是需要在文件名中插入空格。如在微軟操作系統(tǒng)中有一個(gè)My Documents文件夾,其中間就有一個(gè)空格。這個(gè)空格在Unix系統(tǒng)中也屬于一個(gè)特殊的原字符。如果在建立文件或者目錄時(shí),直接加入空格,則Unix操作系統(tǒng)會(huì)提示錯(cuò)誤信息。此時(shí)往往需要轉(zhuǎn)移字符的幫助。如使用命令mkdir My \ Documents,就可以建立中間帶有空格的目錄名。如要建立帶有空格的文件名,也是如此。不過需要注意是,如果在文件或者目錄中包含了元字符的話,那么在使用刪除命令或者目錄定位命令的時(shí)候,也需要采用轉(zhuǎn)移字符來定義這些特殊的元字符,否則的話可能會(huì)出現(xiàn)一些莫名其妙的問題。

  二是利用轉(zhuǎn)義字符對命令進(jìn)行換行。在Unix操作系統(tǒng)中有些命令特別復(fù)雜,特別是那些部屬在Unix操作系統(tǒng)上的命令。如expdp是Oracle數(shù)據(jù)庫中的一個(gè)數(shù)據(jù)庫對象導(dǎo)出命令。雖然這個(gè)命令的功能很強(qiáng)大,但是可惜的是只有通過復(fù)雜的參數(shù)才能夠完成一些特定的功能。有時(shí)候一個(gè)命令需要好幾行才能夠?qū)懲辍km然Unix操作系統(tǒng)提供了命令自動(dòng)換行的方法。但是這個(gè)自動(dòng)換行的功能比較薄弱,如不會(huì)在系統(tǒng)工程想要換行地方進(jìn)行換行。為此采用這個(gè)自動(dòng)換行的話,會(huì)造成代碼閱讀的困難。所以不少系統(tǒng)工程師還是希望能夠自己手工進(jìn)行分行,在某些關(guān)鍵參數(shù)后面進(jìn)行分行,以增加命令的可閱讀性。但是,如果直接使用回車鍵分行的話,系統(tǒng)是不認(rèn)可的。因?yàn)檫@個(gè)回車鍵系統(tǒng)認(rèn)為是一個(gè)執(zhí)行命令的鍵。即當(dāng)系統(tǒng)工程師點(diǎn)擊回車鍵的時(shí)候,系統(tǒng)會(huì)認(rèn)為用戶已經(jīng)將命令輸入完畢。鍵入回車鍵后系統(tǒng)就會(huì)自動(dòng)運(yùn)行這個(gè)命令。所以直接鍵入回車鍵往往不能夠完成命令分行的需求。此時(shí)就需要轉(zhuǎn)義字符的幫助。如現(xiàn)有一個(gè)命令比較長,工程師希望能夠?qū)⑵浞譃閮尚校饕菍?shù)-name后面的內(nèi)容另起一行。此時(shí)就可以在這個(gè)參數(shù)前面加入一個(gè)轉(zhuǎn)義字符\,然后再按回車鍵即可。由于有了這個(gè)轉(zhuǎn)義字符,系統(tǒng)就會(huì)取消回車鍵的換行作用。如此操作之后,系統(tǒng)會(huì)出現(xiàn)一個(gè)次級提示符,這個(gè)次級提示符表示命令還沒有結(jié)束,下一行繼續(xù)。這個(gè)功能對于系統(tǒng)工程師來說,可能是非常實(shí)用的。因?yàn)榇藭r(shí)系統(tǒng)工程師可以輕松的將一長串的命令根據(jù)自己的需要來進(jìn)行分行,從而提高命令的可讀性。

  另外需要注意的是,\這個(gè)轉(zhuǎn)義字符本身就是一個(gè)比較特殊的元字符。如果用戶想在命令或者文件名中使用這個(gè)\符號的話,也需要采用轉(zhuǎn)移字符。如用戶想利用echo或者printf命令顯示網(wǎng)址。在網(wǎng)址中就有很多\符號,此時(shí)就需要采用轉(zhuǎn)義字符來讓系統(tǒng)將\符號當(dāng)作普通字符來對待。

  二、利用引用來解決元字符的問題。

  除了可以利用上面談到的引用功能來處理這些元字符以外,還可以采用引用這個(gè)功能來解決。簡單的說,就是將一個(gè)命令參數(shù)放置在一對引號之內(nèi),則這個(gè)引號之內(nèi)內(nèi)容如果有元字符的話,則這些元字符將不起作用。那么既然轉(zhuǎn)義功能已經(jīng)可以解決元字符的問題,系統(tǒng)還提出了一個(gè)引用的解決方案,是否多次一舉呢?其實(shí)不然。當(dāng)一個(gè)命令行中含有多個(gè)元字符的時(shí)候,需要在每個(gè)元字符前面加一個(gè)轉(zhuǎn)移字符。為此此時(shí)如果采用轉(zhuǎn)義字符來解決這個(gè)元字符的問題時(shí),會(huì)非常的繁瑣。此時(shí)如果采用引用機(jī)制來解決元字符的問題時(shí),可能會(huì)更加的理想。如現(xiàn)在系統(tǒng)工程師希望能夠在屏幕上打出如下信息(這是一個(gè)共享文件的路徑):192.128.11.3\share\IT\software\pdf。如果采用轉(zhuǎn)移字符的話,該如何寫呢?由于這個(gè)輸出結(jié)果中有四個(gè)元字符(轉(zhuǎn)義字符\),為此管理員不得不用四個(gè)轉(zhuǎn)移字符來處理。即要寫成echo 192.128.11.3\\share\\IT\\software\\pdf。這顯然非常的麻煩。遇到這種情況時(shí),如果采用引用的話,顯然會(huì)更加的合適。如采用引用機(jī)制,只需要將這個(gè)命令寫為即可:

  echo ‘192.128.11.3\share\IT\software\pdf’

  將一大串命令采用單引號因起來。則系統(tǒng)會(huì)將命令行中的一些元字符都當(dāng)作普通字符來對待。即不需要為每一個(gè)元字符采用轉(zhuǎn)移字符。顯然這個(gè)引用解決方案要比采用轉(zhuǎn)義字符來解決要方便的多。

  在采用引用機(jī)制來處理元字符時(shí),需要注意跟雙引號的區(qū)別。如現(xiàn)在有如下三個(gè)命令echo $JAVA_HOME、echo ‘$JAVA_HOME’、 “echo $JAVA_HOME”。其中$JAVA_HOME表示應(yīng)用程序Java的環(huán)境變量。此時(shí)如果系統(tǒng)工程師依次運(yùn)行上面這三個(gè)命令,會(huì)有什么結(jié)果呢?第一個(gè)命令會(huì)正常顯示Java的環(huán)境變量;第二個(gè)命令直接顯示$JAVA_HOME,即已經(jīng)將元字符$當(dāng)作普通字符來對待。第三個(gè)命令的話仍然顯示Java的環(huán)境變量。可見雙引號與單引號在引用機(jī)制上,還是有所不同的。那么他們到底有什么差異呢?總的來說,系統(tǒng)工程師需要注意如下內(nèi)容。單引號會(huì)保護(hù)里面所有的元字符,即遇到元字符時(shí)會(huì)告訴系統(tǒng)當(dāng)作普通字符來對待。但是如果采用了雙引號,則系統(tǒng)會(huì)將單引號之間的內(nèi)容解釋為命令行。如會(huì)將$當(dāng)作環(huán)境變量的前綴等等。其實(shí)單引號與雙引號還有一種相互保護(hù)的作用。即雙引號保護(hù)其中的單引號,而單引號保護(hù)其中的雙引號。因?yàn)闊o論是雙引號還是單引號本身就都是元字符,可以通過引用機(jī)制來進(jìn)行保護(hù)。不過在遇到單引號與雙引號(都當(dāng)作普通字符)都存在的情況下,筆者建議還是采用轉(zhuǎn)移字符來保護(hù)單引號或者雙引號為好。這可以避免誤解,也容易提高代碼的可讀性。同理,如果要將轉(zhuǎn)移字符\ 當(dāng)作普通字符來實(shí)用的話,那么最好也是利用單引號來保護(hù)這個(gè)轉(zhuǎn)移字符,而不是利用轉(zhuǎn)移字符來保護(hù)轉(zhuǎn)移字符。這些雖然不影響實(shí)際的應(yīng)用,但是卻是提高代碼可讀性的有效手段。

  從以上的分析中可以看出,雖然轉(zhuǎn)移字符與引用機(jī)制等等都可以將元字符當(dāng)作普通字符來對待。但是,兩者在實(shí)現(xiàn)的方法上還是有一定的差異。為此最好能夠根據(jù)應(yīng)用場合的不同,在選擇合適的解決方案。一般來說,兩者的差異只是實(shí)現(xiàn)方法上的差異,在具體的功能上沒有區(qū)別。不過為了代碼的易讀性上考慮,選擇具體的解決方案是還需要慎重。不過總的來說,系統(tǒng)工程師必須同時(shí)掌握這兩種方法。然后根據(jù)不同的情況現(xiàn)在合適的解決方法。如果光掌握一種解決措施,可能不能夠解決所有跟元字符相關(guān)的問題。

關(guān)鍵字:數(shù)據(jù)、元字符

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項(xiàng)備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站