関数を呼び出し、値を変数に保存します。

関数を呼び出し、値を変数に保存します。
pid=`ps -ef | grep wcm2_wcm2appwlx | awk '$0!~/grep/ && $2~/[0-9]/{print $2}'`
for I in 1 2 3 4 5
do
sts=$(check)
  if [$sts eq / true/]
  then
        echo $I
        slp
  else
        break              #Abandon the loop.
  fi
done
slp(){
echo "sleep is executing "
}
check(){
if ps -p $pid > /dev/null
then
   echo " Backup Script is running with $PID "
   return true
fi
}

答え1

構文は、関数/プロセスの終了値の代わりに変数括弧内にコードをvar=$()格納します。stdout終了/戻り値は次の場所に保存されます。$?

stsエコーの内容を文字列でテストするか、$?予想される戻り値と比較して確認できます。私のbashではtrue数値のみを返すことはできません。

[また、周囲のスペースとスペース]はオプションではないため、必ず含める必要があります。だから

sts=$(check)
if [[ "$sts" = *"is running"* ]]; then
    ...

また、ワイルドカードマッチングを使用できるように[[ ... ]]代わりに使用しました。[ ... ]

また、これを行うことができます

if check; then
    ...

check0または「成功」を返した場合

関連情報