Bash

Bash 腳本循環,數字填充為零

  • March 26, 2018

所以我需要反复嘗試向本地主機上的埠送出一個 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...

引用自:https://unix.stackexchange.com/questions/433559