タイムアウト時のループ繰り返しのスキップ

タイムアウト時のループ繰り返しのスキップ

だからこんなコードがあります。 2つの外部スクリプトを実行し、時には実行に時間がかかりすぎます。実行を制限し、ループの繰り返しごとにタイムアウトを追加したいのですが、これを達成する方法がわかりません。

files=($pathgtp/*.*)

i=0
while [ $i -lt ${#files[*]} ]; do
  f=${files[$i]}
  o=$(basename -- "$f")
  o=${o%.*}
  o=$pathmid/$o.mid
  $PWD/GuitarProToMidi "$f" -o "$o" -f # first script here
  $pythonvenv $pythonscript "$o" # second script here
  rm "$o" # remove temporary file
  ((i++))
done

答え1

timeoutGNU coreutils.fromを使用できますman timeout

名前

timeout- タイムアウトのあるコマンドの実行

要約

 timeout [OPTION] DURATION COMMAND [ARG]...
 timeout [OPTION]

説明する

始めてCOMMAND、まだ追っているなら殺してみてくださいDURATION

[...]

関連情報