我的老师给我布置了一项作业,要求我尝试打败一个每次发送一个数字的机器人,我需要发送准确的数字,但要更快。我写了一个bash脚本:
#!/bin/bash
while true; do
nc ip port | grep "try to beat me:" | cut -d " " -f5 | xclip
xclip -o
done
问题是 xclip 复制了该号码,但它没有将其发送到 netcatb 中的服务器 — 为什么?
答案1
如果您想使用交互方式通过套接字发送和接收数据nc
,您可以执行以下操作:
nc -c /path/to/your/script <host> <port>
所有传入的nc
数据都将写入脚本的输入,脚本的输出将传递到套接字。
这样,在脚本中您可以读取数字stdin
并直接打印它以将其发送到nc
:
#!/bin/bash
while true; do
grep "try to beat me:" | cut -d " " -f5 | xclip
xclip -o
done
答案2
我相信你可能想要这样的东西:
#!/bin/bash
while true; do
port=$(nc ip port | grep "try to beat me:" | cut -d " " -f5)
nc ip "$port" </dev/null
sleep 1
done