2014-10-09 60 views
0

解决方案的Linux脚本的netcat

while read -r line 
do 
     echo $line 
done < <(nc -l -p 4001) 

用命令

nc -l -p 4001 -v 

我可以听端口4001到我的条码扫描仪(没有脚本的工作)。

我试图写一个bash脚本这样

while true do 

    if [ nc -l -p 4001 -v ] then 
    echo "barcode incoming" 
    fi 

done 

如何检查是否nc -l -p 4001 -v是不是空的?

回答

0

您可以通过检查nc命令的返回状态,像这样使用:

while true; do 

    if nc -l 4001; then 
    echo "barcode incoming" 
    else 
    sleep 1 
    fi 

done 
+1

你的代码可以变得更简单:'if nc -l -w 3 -p 4001 -v; then'。 – 2014-10-09 07:29:07

+0

谢谢,好点。我编辑 – anubhava 2014-10-09 07:31:18

+0

@anubhava它不适合我。当我运行这个脚本时,我从'192.168.100.111:5011'连接。现在我可以扫描我的条形码,但回显**条形码传入**不会出现。 – Philipp88 2014-10-09 08:03:47

0

什么是您所看到的完整输出?

我尝试了一样,我看到下面的打印:

listening on [any] 7000 ... 
10.62.73.59: inverse host lookup failed: Unknown host 
connect to [10.63.61.231] from (UNKNOWN) [10.62.73.59] 48138 
./tt_DIR/0000755000175000017500000000000012407172607011306 5ustar sdlcbsdlcbbarcode incoming 
listening on [any] 7000 ... 

“条码进入”越来越被印在了我的情况。