如何从其他命令的输出中捕获文件?

如何从其他命令的输出中捕获文件?

如果我做:

perldoc -l WWW::Mechanize

我得到以下输出:

/usr/local/lib/perl5/site_perl/5.16.3/WWW/Mechanize.pm

如何在一行中将 top 命令给出的文件内容打印到屏幕上?我希望我能做这样的事情:

perldoc -l WWW::Mechanize | cat | more

答案1

您可以使用命令替换来做到这一点,如下所示:

more "$(perldoc -l WWW::Mechanize)"

括号中的命令将首先在子 shell 中运行。然后输出将被发送到more.

包含引号是为了防止更一般情况下出现问题:例如,如果输出包含空格或通配符。

例如,如果 的输出perldoc -l WWW::Mechanize包含空格(如 中)/usr/local/lib/perl5/site perl/5.16.3/WWW/Mechanize.pm,您将收到以下错误:

/usr/local/lib/perl5/site: No such file or directory
perl/5.16.3/WWW/Mechanize.pm: No such file or directory

相关内容