String 为什么是;这里是字符串“;称为;这里是字符串“;?
这个名字背后的原因是什么 下面解释PowerShell中的字符串,如下所示: 此处的字符串是可以跨多行的单引号或双引号字符串。 不计算单引号字符串中的表达式 here字符串中的所有行都被解释为字符串,即使它们没有用引号括起来String 为什么是;这里是字符串“;称为;这里是字符串“;?,string,powershell,naming-conventions,naming,String,Powershell,Naming Conventions,Naming,这个名字背后的原因是什么 下面解释PowerShell中的字符串,如下所示: 此处的字符串是可以跨多行的单引号或双引号字符串。 不计算单引号字符串中的表达式 here字符串中的所有行都被解释为字符串,即使它们没有用引号括起来 $myHereString = @' some text with "quotes" and variable names $printthis some more text '@ 它们在PowerShell中使用此名称,因为它与PowerShe
$myHereString = @'
some text with "quotes" and variable names $printthis
some more text
'@
它们在PowerShell中使用此名称,因为它与PowerShell中的许多其他元素和概念一样,是从Unix样式的shell中借用的: : 这里的文档起源于unixshell,可以在sh、csh、ksh、bash和zsh等中找到 至于最初使用该名称的原因,本文并未严格涵盖词源,而是基于以下描述: 在计算技术中,此处文档(此处文档,此处文本,heredoc,此处,此处字符串或此处脚本)是文件文本或输入流文本:它是源代码文件的一部分,被视为一个单独的文件。该术语还用于一种使用类似语法的多行字符串文本形式,在文本中保留换行符和其他空白(包括缩进) 名称的“here”部分指的是包含在“here”中的文件,这似乎是合乎逻辑的
为了完整起见,值得注意的是,PowerShell还直接在单引号和双引号
[string]
中支持换行符,如下所示:
$myString = 'some text with "quotes" and variable names $printthis
some more text'
当您需要两种类型的引号时,此处字符串更有用:
$myHereString = @'
some text with "quotes" and variable names $printthis
some more text
and my grandma's soup
'@
如果那只是一个带引号的字符串,则需要转义奶奶的中的'
如果是双引号字符串,则需要转义“
的实例,如果不希望变量展开,则需要转义$
有趣的是:此处字符串的解释方式之间的差异构成了(其内容可以在任何环境中执行的脚本)的基础.此外,在here字符串中,不包括初始换行符,这与使用常规字符串的方式不同。marsze这是真的,在here字符串实现中也有所不同!我添加了一个链接,指向一个有趣的github repo,通过创建多语言脚本显示了这一点。没有办法使用像EOF这样的关键字来代替q吗uotes,这样就可以避免转义引号了?