posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          再談引號……

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

           

          引號
          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會忽略任何引用值。換句話說,如果屏蔽了其特殊含義,會將引號里的所有字符,包括引號都作為一個字符串。使用上一個例子,結(jié)果如下:
          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  

          反引號
          反引號用于設(shè)置系統(tǒng)命令的輸出到變量。shell將反引號中的內(nèi)容作為一個系統(tǒng)命令,并執(zhí)行其內(nèi)容。使用這種方法可以替換輸出為一個變量。反引號可以與引號結(jié)合使用。下面將舉例說明。
          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命令加*,意即以串行順序打印當(dāng)前整個目錄列表,而不是一個星號 *。
          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時,用*表示乘法會出現(xiàn)錯誤,在*前加上反斜線才會正確。
          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。其
          中$屏蔽與不屏蔽將產(chǎn)生不同的結(jié)果。
          Shell代碼
          1. /home/l/g/tomotoboy >echo $129  
          2. 29  
          3. /home/l/g/tomotoboy >echo \$129  
          4. $129  


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 芜湖市| 黄平县| 富锦市| 来宾市| 桂东县| 平罗县| 饶河县| 灌阳县| 迁西县| 深圳市| 华坪县| 永平县| 江城| 交口县| 宜兴市| 柳河县| 通化县| 大港区| 故城县| 保山市| 东兴市| 玉山县| 商河县| 固阳县| 佛坪县| 柘城县| 赤城县| 都匀市| 嫩江县| 雷山县| 铜川市| 阳信县| 朔州市| 宁陵县| 阿图什市| 焦作市| 南木林县| 昭平县| 台湾省| 彩票| 青岛市|