如何将文本而不是文件作为变量传递

时间:2015-10-02 23:40:58

标签: perl shell command-line terminal

我想将文本作为变量而不是文件传递。 我不知道如何用一个例子来解释这个问题。

我有一个perl脚本,用法如下printme.pl [file] 我希望在不传入文件的情况下运行并只传递文本。

echo print_me | perl printme.pl

而不是

perl printme.pl textfile.txt

我正在尝试运行一个perl脚本,它将文本文件作为变量并使用echo输出。

1 个答案:

答案 0 :(得分:2)

bash(在其他shell中)有一个名为process substitution的功能。在此功能中,您可以添加一些输出到stdout的shell代码,并让shell将其视为文件。

在你的情况下,你会写:

perl printme.pl <(echo "hello world")

Perl会在$ ARGV [0]中收到一个类似/ dev / fd / 63的文件名,它可以从中读取&#34; hello world \ n&#34;