|
字符串的字面值 字符串类型在PowerShell的使用中频率也非常高,对比其他shell来说,虽然PowerShell使用字符串的情况变少了,但是在功能上甚至可以说得到了增强。主要的原因可以归功于.Net Framework类库。System.String类中包含了各式各样的方法,让使用者可以方便的处理字符串。
在PowerShell中,字符串就是.Net Framework中的16-bit Unicode字符序列。因此,日常使用时,可以正确处理大部分常用的各国字符。
说起字符串,就必须要解释引号规则,引号规则往往总是与两个概念有关:特殊字符的保护以及变量代换。
变量代换有时候也被为变量展开或变量篡改,通过这种手段,可以简化字符串表示,使脚本的阅读者或维护者更加方便的理解代码。例如:
PS C:\> $a = 'Windows PowerShell'
PS C:\> "Hello, $a"
Hello, Windows PowerShell
通过将变量名称替换成变量的值,使变量能够在字符串展开成原始值的过程就是变量代换。
单引号
单引号的功能有时候会让人爱不释手,因为单引号中任何字符都只表示自己。换句话来说,单引号中不会进行变量代换,也不会对任何转义序列进行处理,你看到的“几乎”就是你输入的字符串。之所以我用“几乎”这副词来强调,是因为引号规则中有个特例,如果需要在单引号的字符串中包括单引号该怎么办呢?为了解决这种情况,Windows PowerShell采用了类似CSV文件中的解决方法:通过使用连续两个引号来表示一个引号。下面是几个单引号字符串的例子:
PS C:\> $shells = 'PowerShell' # 设置变量$shells为字符串PowerShell
PS C:\> 'What''up, $shells' # 两个连个连续的单引号表示一个单引号
What'up, $shells
PS C:\> 'What'up, $shells' # 因为单引号不匹配,引起错误
Unexpected token 'up' in expression or statement.
At line:1 char:9
+ 'What'up, "'`$shell is $shell'"
'$shell is PowerShell'
PS C:\> '"`$shell is $shell"'
"`$shell is $shell"
如果大家已经吸收了前面所介绍的知识,那么这个例子的结果应该非常好解释。我们对单引号双引号做个简单的概括:1. 单引号中不支持变量代换和转义序列;双引号中允许变量代换以及转义序列。2. 根据最外层的引号决定字符串如何被处理。3. 连续重复两次最外层引号表示一个引号。只要这三条记住,引号规则就不会成为困难。
|
|
|