在采用引用机制来处理元字符时,需要注意跟双引号的区别。如现在有如下三个命令echo $JAVA_HOME、echo ‘$JAVA_HOME’、 “echo $JAVA_HOME”。其中$JAVA_HOME表示应用程序Java的环境变量。此时如果系统工程师依次运行上面这三个命令,会有什么结果呢?第一个命令会正常显示Java的环境变量;第二个命令直接显示$JAVA_HOME,即已经将元字符$当作普通字符来对待。第三个命令的话仍然显示Java的环境变量。可见双引号与单引号在引用机制上,还是有所不同的。那么他们到底有什么差异呢?总的来说,系统工程师需要注意如下内容。单引号会保护里面所有的元字符,即遇到元字符时会告诉系统当作普通字符来对待。但是如果采用了双引号,则系统会将单引号之间的内容解释为命令行。如会将$当作环境变量的前缀等等。其实单引号与双引号还有一种相互保护的作用。即双引号保护其中的单引号,而单引号保护其中的双引号。因为无论是双引号还是单引号本身就都是元字符,可以通过引用机制来进行保护。不过在遇到单引号与双引号(都当作普通字符)都存在的情况下,笔者建议还是采用转移字符来保护单引号或者双引号为好。这可以避免误解,也容易提高代码的可读性。同理,如果要将转移字符\ 当作普通字符来实用的话,那么最好也是利用单引号来保护这个转移字符,而不是利用转移字符来保护转移字符。这些虽然不影响实际的应用,但是却是提高代码可读性的有效手段。

从以上的分析中可以看出,虽然转移字符与引用机制等等都可以将元字符当作普通字符来对待。但是,两者在实现的方法上还是有一定的差异。为此最好能够根据应用场合的不同,在选择合适的解决方案。一般来说,两者的差异只是实现方法上的差异,在具体的功能上没有区别。不过为了代码的易读性上考虑,选择具体的解决方案是还需要慎重。不过总的来说,系统工程师必须同时掌握这两种方法。然后根据不同的情况现在合适的解决方法。如果光掌握一种解决措施,可能不能够解决所有跟元字符相关的问题。

  1. Linux系统下配置Netware服务器方法
  2. 嵌入式设备上的 Linux 系统开发
  3. 深度介绍Linux内核是如何工作的(1)


相关内容