スクリプトは一度だけループを実行します。

スクリプトは一度だけループを実行します。

私はEntwareを使用して15分ごとにウェブサイトの応答を確認するために私のルータでこのスクリプトを使用します。一度だけ実行され、最初の15分後に終了します。なぜ?

#! /bin/sh

for i in {1..10}
do  
  date >> webresp.csv
  curl -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null www.google.com | tee -a webresp.csv
  sleep 900
done

答え1

あなたはを使用しています#! /bin/sh{1..10}標準シェルではなく bash 拡張です。 Bashは10語まで拡張されます{1..10}。標準シェルでは、単一の単語に展開されます。

答え2

これを変更してください:

for i in {1..10}

これに関して:

for i in $(seq 10)

...その後、スクリプトは期待どおりに機能するはずです。

関連情報