Netcat结果作为perl脚本参数

时间:2016-01-28 15:23:13

标签: perl shell netcat

我正在尝试将netcat的输出作为linux中的perl脚本参数:),这是我的perl代码:while(1){ if(@ARGV>1){some traitement ....} 在终端我测试了这个:netcat -l -u -p 1111 | perl myscript.pl 这不起作用,我收到的数据我可以在wireshark上查看。 但是这些数据需要重定向到myscript.pl作为参数。如果可以用.sh文件来做它就可以了。 谢谢。

2 个答案:

答案 0 :(得分:1)

您将输出传递给perl的STDIN。您只需执行以下操作即可阅读:

while (<>) {
   ...
}

如果您确实需要输出作为参数,请使用以下内容(但请记住参数大小有限制):

perl myscript.pl "$( netcat ... )"

答案 1 :(得分:0)

使用像这样的xargs(旧的/不同的netcat程序称为nc)

nc -l 1111 | xargs perl -e '$!=1;print @ARGV'

在套接字的另一端发送一个EOF。一旦发生这种情况,所有参数都将传递给脚本