Bash
Bash 腳本循環,數字填充為零
所以我需要反复嘗試向本地主機上的埠送出一個 4 位數字,然後評估我從埠獲得的響應是否包含特定字元串,我使用
grep
. 我用過類似的東西echo {0000...9999} | nc localhost port
。但是,我無法從這個命令中得到這個很好的序列擴展來在 bash 腳本中工作。我該如何為這個問題編寫一個 bash 腳本?
您可以在
for-loop
以下範圍內使用:for i in {0001..9999}; do grep -q 'specificString' <<<"$(nc localhost $i)" && \ echo "found on $i" || echo "not found on $i"; done
對於不支持大括號擴展或不保留零填充的 shell:
i=0 while [ "$i" -le 9999 ]; do printf '%04d\n' "$i" i=$(( i + 1 )) done | nc ...other options... | grep ...etc...