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
。