無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          再談引號……

          Posted on 2009-11-29 12:01 Gavin.lee 閱讀(220) 評論(0)  編輯  收藏 所屬分類: Linux 日常應用

           

          引號
          Shell代碼
          1. /home/l/g/tomotoboy > echo "*"  
          2. *   
          3. /home/l/g/tomotoboy >echo '*'  
          4. *   
          5. /home/l/g/tomotoboy > echo \*   
          6. *  


          雙引號
          使用雙引號可引用除字符$、`、\外的任意字符或字符串。這些特殊字符分別為美元符號,反引號和反斜線,對shell來說,它們有特殊意義。如果使用雙引號將字符串賦給變量并反饋它,實際上與直接反饋變量并無差別。
          Shell代碼
          1. *   
          2. /home/l/g/tomotoboy >F="HELLO"  
          3. /home/l/g/tomotoboy >echo "$F"  
          4. HELLO   
          5. /home/l/g/tomotoboy >echo $F   
          6. HELLO   
          7.   
          8. /home/l/g/tomotoboy >F="hello, china,^ &"  
          9. /home/l/g/tomotoboy >echo $F   
          10. hello, china,^ &   
          11.   
          12. /home/l/g/tomotoboy >echo "The $F "  
          13. The hello, china,^ &  

          單引號
          單引號與雙引號類似,不同的是shell會忽略任何引用值。換句話說,如果屏蔽了其特殊含義,會將引號里的所有字符,包括引號都作為一個字符串。使用上一個例子,結果如下:
          Shell代碼
          1. /home/l/g/tomotoboy >echo "The '$GIRL' did well"  
          2. The 'girl' did well   
          3. /home/l/g/tomotoboy >echo 'The '$GIRL' did well'  
          4. The girl did well   
          5. /home/l/g/tomotoboy >echo 'The $GIRL did well'  
          6. The $GIRL did well  

          反引號
          反引號用于設置系統命令的輸出到變量。shell將反引號中的內容作為一個系統命令,并執行其內容。使用這種方法可以替換輸出為一個變量。反引號可以與引號結合使用。下面將舉例說明。
          Shell代碼
          1. /home/l/g/tomotoboy >echo `who| wc -l`   
          2. 13  
          3. /home/l/g/tomotoboy >echo `date`   
          4. Tue Aug 4 15:08:47 CST 2009  

          反斜線
          如果下一個字符有特殊含義,反斜線防止 shell誤解其含義,即屏蔽其特殊含義。下述字符包含有特殊意義:& * + ^ $ ` " | ?。假定echo命令加*,意即以串行順序打印當前整個目錄列表,而不是一個星號 *。
          Shell代碼
          1. /home/l/g/tomotoboy >echo \*   
          2. *   
          3. /home/l/g/tomotoboy >echo $$   
          4. 26421  
          5. /home/l/g/tomotoboy >echo $!   
          6.   
          7. /home/l/g/tomotoboy >echo $#   
          8. 0  
          9. /home/l/g/tomotoboy >echo \$$   
          10. $$   
          11.   
          12. /home/l/g/tomotoboy >echo 12*12  
          13. 12*12  
          14. /home/l/g/tomotoboy >echo 12 * 12  
          15. 12 a.out append.sed change.sed core.log diary.txt echo factorial factorial.c greeting.sh grepgrepstrings grepstr hdisk.txt hello hello.cpp main main.c nohup.out oops.txt plane.txt readme.sh seawolf sed.out sed.txt sort.txt stat.tmp test test.sh user. online 12  

          使用命令expr時,用*表示乘法會出現錯誤,在*前加上反斜線才會正確。
          Shell代碼
          1. /home/l/g/tomotoboy >expr 12 * 12  
          2. expr: syntax error   
          3. /home/l/g/tomotoboy >expr 12 \* 12  
          4. 144  

          在echo命令中加入元字符,必須用反斜線起屏蔽作用。下面的例子要顯示價格 $129。其
          中$屏蔽與不屏蔽將產生不同的結果。
          Shell代碼
          1. /home/l/g/tomotoboy >echo $129  
          2. 29  
          3. /home/l/g/tomotoboy >echo \$129  
          4. $129  


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巴塘县| 莱芜市| 沧州市| 临潭县| 陇川县| 乐平市| 禹城市| 图木舒克市| 体育| 乐东| 巴彦淖尔市| 平江县| 宜川县| 台安县| 揭西县| 渝北区| 防城港市| 马边| 兰坪| 大邑县| 昆明市| 贺州市| 仁怀市| 闽清县| 苗栗市| 西乡县| 新余市| 华阴市| 叙永县| 海安县| 永昌县| 九江县| 桑日县| 隆回县| 大关县| 盐山县| 辉南县| 济阳县| 雅安市| 长宁县| 灌阳县|