这个名字背后的原因是什么?
SS64在此解释PowerShell中的字符串如下:
此处字符串是单引号或双引号字符串,可以跨越多行。 不评估单引号字符串中的表达式。
here-string中的所有行都被解释为字符串,即使它们没有用引号括起来。
$myHereString = @' some text with "quotes" and variable names $printthis some more text '@
答案 0 :(得分:12)
它们在PowerShell中有这个名称,因为它是从Unix样式的shell中借用的,就像PowerShell中的许多其他元素和概念一样:
这里的文档来自Unix shell,可以在sh,csh,ksh,bash和zsh等中找到。
至于为什么最初使用该名称,该文章并未严格涵盖词源,而是基于此描述:
在计算方面,此处文档(此处为文档,此处为文本, heredoc , hereis , here-string 或 here-script )是文件文字或输入流文字:它是被处理的源代码文件的一部分好像它是一个单独的文件。该术语还用于使用类似语法的多行字符串文字形式,在文本中保留换行符和其他空格(包括缩进)。
"这里"似乎合情合理。名称的一部分是指包含的文件"这里" (如此,此时)。
为了完整起见,值得注意的是,PowerShell还直接在单引号和双引号[string]
中支持换行符,如下所示:
$myString = 'some text with "quotes" and variable names $printthis
some more text'
here-string有用的一个更好的例子是当你需要两种类型的引号时:
$myHereString = @'
some text with "quotes" and variable names $printthis
some more text
and my grandma's soup
'@
如果只是一个带引号的字符串,'
中的grandma's
将需要转义。
如果是双引号字符串,则您需要转义"
和的实例,您需要转义$
如果你没有想要变量扩展。