Perl -e 插入新行

Perl -e 插入新行

可能重复:
在 perl -e 语句中插入换行符

你好

如果我在 bash 中执行此操作

perl -e '$x; $y'

是否有任何字符可以表现得像一个新行?

即我想要做

perl -e '$x; some_chars_as_new_line $y'

其中 some_chars_as_new_line 可能是 \,而不是元字符。

perl 解释器实际上看到的是一个实际的新行。

$x; 
$y;

非常感谢

答案1

您问的问题仅涉及 shell 如何解释其输入并将其传递给其他程序。它本身与 Perl 无关。

您应该可以将其放入脚本中:

foo '$x;
$y;'

传递给命令的参数将在与脚本本身相同的位置有一个换行符。您可能需要小心地保存这样的脚本,使其以 Unix 样式(仅 LF)换行符结尾,否则您可能会得到 CR+LF(DOS/Windows 换行符)或仅 CR(旧 Mac 样式换行符)。您也可以在交互式提示符下执行此操作,但您将在第二行和任何后续行之前看到继续提示:

$ foo '$x;
> $y;'

狂欢,您还可以使用$''引用对换行符进行编码的语法如下:

foo $'$x;\n$y;'

传递给程序的参数将以类似于 ANSI C 字符串的方式处理。如果您希望字符串中有一个实际的反斜杠,则必须将其转义为 , \\

因此,如果您确实想要单引号提供的文字字符串引用,您应该坚持使用嵌入的换行符,这样您就不必担心额外的转义。

相关内容