歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix資訊 >> 利用引用管理Unix操作系統

利用引用管理Unix操作系統

日期:2017/3/6 11:42:16   编辑:Unix資訊

經過長時間的學習Unix操作系統後,這次我們就來學習下如何利用引用來解決Unix操作系統元字符的問題。在Unix操作系統中有一類特殊的字符,叫做元字符。他們在系統中表示特殊的含義。如*號與?號,操作系統認為這些元字符是通配符。

如果在路經、文件名或者命令參數中有這些元字符的話,就會引起Unix操作系統的誤解。為此在系統中要采用一些方法,能夠讓操作系統將這些元字符當作普通字符來對待。

利用引用來解決Unix操作系統元字符的問題

可以采用引用這個功能來解決。簡單的說,就是將一個命令參數放置在一對引號之內,則這個引號之內內容如果有元字符的話,則這些元字符將不起作用。

那麼既然轉義功能已經可以解決元字符的問題,Unix操作系統還提出了一個引用的解決方案,是否多次一舉呢?其實不然。當一個命令行中含有多個元字符的時候,需要在每個元字符前面加一個轉移字符。

為此此時如果采用轉義字符來解決這個元字符的問題時,會非常的繁瑣。此時如果采用引用機制來解決元字符的問題時,可能會更加的理想。如現在Unix操作系統工程師希望能夠在屏幕上打出如下信息(這是一個共享文件的路徑):192.128.11.3\share\IT\software\pdf。

如果采用轉移字符的話,該如何寫呢?由於這個輸出結果中有四個元字符(轉義字符\),為此管理員不得不用四個轉移字符來處理。即要寫成echo 192.128.11.3\\share\\IT\\software\\pdf。這顯然非常的麻煩。

遇到這種情況時,如果采用引用的話,顯然會更加的合適。如采用引用機制,只需要將這個命令寫為即可:
echo ‘192.128.11.3\share\IT\software\pdf’

將一大串命令采用單引號因起來。則Unix操作系統會將命令行中的一些元字符都當作普通字符來對待。即不需要為每一個元字符采用轉移字符。顯然這個引用解決方案要比采用轉義字符來解決要方便的多。

在采用引用機制來處理元字符時,需要注意跟雙引號的區別。
如現在有如下三個命令echo $JAVA_HOME、echo ‘$JAVA_HOME’、 “echo $JAVA_HOME”。其中$JAVA_HOME表示應用程序Java的環境變量。

此時如果Unix操作系統工程師依次運行上面這三個命令,會有什麼結果呢?第一個命令會正常顯示Java的環境變量;第二個命令直接顯示$JAVA_HOME,即已經將元字符$當作普通字符來對待。第三個命令的話仍然顯示Java的環境變量。可見雙引號與單引號在引用機制上,還是有所不同的。

那麼他們到底有什麼差異呢?總的來說,Unix操作系統工程師需要注意如下內容。單引號會保護裡面所有的元字符,即遇到元字符時會告訴系統當作普通字符來對待。但是如果采用了雙引號,則系統會將單引號之間的內容解釋為命令行。如會將$當作環境變量的前綴等等。其實單引號與雙引號還有一種相互保護的作用。

即雙引號保護其中的單引號,而單引號保護其中的雙引號。因為無論是雙引號還是單引號本身就都是元字符,可以通過引用機制來進行保護。不過在遇到單引號與雙引號(都當作普通字符)都存在的情況下,筆者建議還是采用轉移字符來保護單引號或者雙引號為好。

這可以避免誤解,也容易提高代碼的可讀性。同理,如果要將轉移字符\ 當作普通字符來實用的話,那麼最好也是利用單引號來保護這個轉移字符,而不是利用轉移字符來保護轉移字符。這些雖然不影響實際的應用,但是卻是提高代碼可讀性的有效手段。

在以上內容中我們就學習了Unix操作系統中利用引用來解決元字符的問題的知識要點,希望大家可以好好的學習下。

Copyright © Linux教程網 All Rights Reserved