Board logo

标题: 介绍几个shell程序设计小知识之二 [打印本页]

作者: samwalton    时间: 2014-2-27 16:47     标题: 介绍几个shell程序设计小知识之二

shell中的特殊字符有
  
  1、$ 美元符
  2、\ 反斜杠
  3、` 反引号
  4、" 双引号
  5、< ,>,*,?,[,]
  
  下面我一一举列说明
  
  一、$符号
  1、echo $? 显示的是上一条指令退出状态
  2、echo "$?" 效果同上
  3、echo '$?' 显示的是$?
  4、echo \$? 显示的是$?
  5、echo "\$?" 显示的是$?
  
    大家可能已经看出 $符号在双引号中具有特殊意义 双引号对$符号不起作用
  而单引号可以将特殊字符的的特殊意义屏蔽掉,使其能显示为字符本身,反斜
  杠也可以将特殊字符的特殊含义屏蔽掉,使特殊字符失去特殊含义。
  
  二、\ 反斜杠
    反斜杠的作用是将特殊符号字符的特殊含义屏蔽掉,使其还是原字符
  A=1234
  echo \$A 显示为$A 如果不加\将显示为1234
  echo \` 显示为`
  echo \" 显示为双引号
  echo \\ 显示为\
  
  三、` 反引号
  反引号的功能是命令替换,将反引号中的字符串做为命令来执行,我们在用shell编程时经常用的到 将系统命令的执行结果赋给一个变量
  
  A=`date`
  echo $A 显示的不是date而是当时的时间串
  比如有一文件A的内容如下 
  ABCDEFG
  1234456
  abcdefg
  
  B=`cat A|grep 234` # 检索文件A中含有字符串234的行
  echo $B 将显示为1234456
  echo "$B" 将显示为什么?
  echo "\$B" 将显示为什么?读者自己试试
  
  四、" 双引号
  在系统中有些特殊字符,为避免引用这些特殊字符 往往用双引号或单引号将这些特殊字符引起来,使其不具有特殊含义。
  
  但有一部分特殊字符在引号中还是具有特殊含义,用双引号引起来是不起作用的。本文中所列的前四个特殊字符在双引号中还是特殊字符。为了使其不具有特殊含义一是用单引号引进来二是用\反斜线使其失去作用。
  
  比如我们想原样输出这些特殊字符
  
  echo """
  echo "$"
  echo "\"
  echo "`"
  以上不是你所期望的结果,因为双引号对它们不起作用,你只能这样才能输出这些特殊字符的原形
  echo '"'
  echo '$'
  echo '\'
  echo '`'
  或
  echo "\""
  echo "\$"
  echo "\\"
  echo "\`"
  将分别显示为 " $ \ `
  
  五、其它特殊字符
  大家注意到 除了前四个特殊字符外 我将其它的特殊字符都放在一块,这是因为前四个特殊字符在双引号中还是具有特殊含义,所以单独拿出来讲,除此以外的特殊字符如果你要输出这些特殊字符的原形,你就可以用双引号或单引号引起来使其失去特殊含义。
  < ,>,*,?,[,]对shell有特殊含义 但你可以用双引号引起来输入这些原形




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0