无线&移动互联网技术研发

换位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

再谈引号……

Posted on 2009-11-29 12:01 Gavin.lee 阅读(206) 评论(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  


只有注册用户登录后才能发表评论。


网站导航: