输出perl脚本中的文件以供bash脚本读取

时间:2015-10-28 02:01:12

标签: bash perl

我有一个shell脚本调用perl脚本来操作一些数据。一旦Perl脚本完成它就应该关闭并返回shell(bash)脚本的数据文件,然后在函数中使用该文件。关闭文件后如何结束perl脚本?

举个简单的例子:

#!/usr/bin/environment perl

my $filename = shift @ARGV;

open(my $fh, '+<', $filename) or die "Couldn't Open File";
sort $fh;
close $fh;
编辑:那么,其他地方可能会出错。要排序的文件每行包含一个单词。如果这个脚本工作,我如何在bash shell中使用它的输出?我期望:     perl sort.pl“$ filename”&gt; sorted.txt 将sorted.txt保存在磁盘上。

1 个答案:

答案 0 :(得分:3)

Perl中的sort函数对列表进行操作,而不是文件句柄。您可以使用<>运算符从文件句柄中读取。您还需要一些输出,因此结果为print

print sort <$fh>;

如果您不在Perl脚本中执行任何其他操作,则调用标准sort(通常为/usr/bin/sort)可能更容易,更清晰,更高效。