我正在尝试将netcat的输出作为linux中的perl脚本参数:),这是我的perl代码:while(1){ if(@ARGV>1){some traitement ....}
在终端我测试了这个:netcat -l -u -p 1111 | perl myscript.pl
这不起作用,我收到的数据我可以在wireshark上查看。
但是这些数据需要重定向到myscript.pl作为参数。如果可以用.sh文件来做它就可以了。
谢谢。
答案 0 :(得分:1)
您将输出传递给perl
的STDIN。您只需执行以下操作即可阅读:
while (<>) {
...
}
如果您确实需要输出作为参数,请使用以下内容(但请记住参数大小有限制):
perl myscript.pl "$( netcat ... )"
答案 1 :(得分:0)
使用像这样的xargs(旧的/不同的netcat程序称为nc)
nc -l 1111 | xargs perl -e '$!=1;print @ARGV'
在套接字的另一端发送一个EOF。一旦发生这种情况,所有参数都将传递给脚本