因此,我需要反复尝试向本地主机上的端口提交一个 4 位数字,然后评估从该端口获得的响应是否包含特定字符串,我使用grep
.我用过类似的东西echo {0000...9999} | nc localhost port
。但是,我无法获得从该命令获得的良好序列扩展以在 bash 脚本中工作。我该如何编写 bash 脚本来解决这个问题?
答案1
您可以在类似以下内容中使用for-loop
:
for i in {0001..9999}; do
grep -q 'specificString' <<<"$(nc localhost $i)" && \
echo "found on $i" || echo "not found on $i";
done
答案2
对于不支持大括号扩展或不保留零填充的 shell:
i=0
while [ "$i" -le 9999 ]; do
printf '%04d\n' "$i"
i=$(( i + 1 ))
done | nc ...other options... | grep ...etc...