当我尝试运行它时,为什么我的脚本会挂起?

时间:2014-02-28 20:21:09

标签: perl

我试图在输出中找到包含非字母数字字符的文件名:

svn ls -R url

我编写了以下Perl脚本来执行此操作:

#!/usr/local/bin/perl -w

while (<>) {
    s|/$||;
    s|^|code/|;
    if (!m|.*(/[-./\w]+?$)|) {
        print "$_";
    }
 }

我在shell中运行以下命令:

svn ls -R url
./script

但我的终端在./script命令后挂起。为什么呢?

1 个答案:

答案 0 :(得分:4)

您的脚本正在等待stdin上的输入。将svn ls的结果传递给您的脚本,如下所示:

svn ls -R url | ./script