ポーリングコマンドの正しい出力

ポーリングコマンドの正しい出力

bashに初めて触れたので、助けてくれてありがとう。次のようなスクリプトを探しています。とても簡単なスクリプトですが、得られないようです。

  • 返されるコマンドを実行したいです。成功または出力の他の文字列。
  • 出力される場合確かに単語が含まれています成功5分間スリープ状態にして、次の内容が含まれるまでやり直したいと思います。成功

それはこんな感じ

until (SOMECOMMAND) &> /dev/null
do
    if(SOMECOMMAND contains successful);
    break;
    else sleep 300
done

echo -e "\nThe command was successful."

ベストアンサー1

次のことができます。

#!/bin/bash

output=
count=0

until [[ $output =~ successful ]]; do
    output=$(somecommand 2>&1)
    ((count++))
    sleep 300
done

printf '\n%s\n' "Command completed successfully after $count attempts."

出力するかどうかを確認します。含む成功、出力が次のようであることを確認したい場合正確に「成功」=~に変更する==

$( ... )はいコマンドの置き換えoutputパラメータを出力に設定するために使用されますsomecommand

おすすめ記事