用于unix命令的Perl用户输入

Blo*_*nes 6 perl

有人可以帮助我解决我在这里做错了什么,一直在摸不着头脑.我只是对irssi脚本进行了一些小改动,我不知道perl.

            $selectedname = <STDIN>;
            $Nameslist = `grep -i -w '$selectedname'~/file`;
Run Code Online (Sandbox Code Playgroud)

它正常工作我遇到的问题是看起来变量未正确插入.例如,如果我在命令行中使用单词test键入相同的命令,则会显示3行.但是,如果我在这个脚本中使用相同的单词,那么它就会变空.

我知道它工作正常,因为我可以做*作为输入,它会显示整个文件.它只是不使用输入的字符串.

任何帮助将非常感谢,这真的让我很难过.

Ari*_*nda 1

实际上,当您使用 时<STDIN>,会出现一个换行符。所以你需要删除换行符。您可以使用chomp删除新行字符

代码:

   $selectedname = <STDIN>;
   chomp($selectedname);
   $Nameslist = `grep -i -w '$selectedname'~/file`;
Run Code Online (Sandbox Code Playgroud)