「ERROR」または「ORA-」を確認してください。

「ERROR」または「ORA-」を確認してください。

$Yに「ERROR」または「ORA-」があることを確認したいと思います。エラーが発生した場合は終了

Y=`sqlplus -s user/passwd<< EOF
exec test_Proc;
exit;
EOF`
if [ echo $Y | awk '/ERROR/ || /ORA-/' ] ; then
  exit 1
fi

しかし、これはうまくいきません。

ベストアンサー1

実行している場合は、bash正規表現一致を使用してこれを実行できます。

if [[ $Y =~ (ERROR|ORA-) ]]; then
    echo error
fi

または主張する場合は、次のようにすることができますawk

if ! printf '%s\n' "$Y" | awk '/ERROR|ORA-/ {exit 1}'; then
    echo error
fi

要点は、awkシェル式ロジックではなく正規表現を使用することです。

最も簡単な方法は、おそらく以下を使用することですgrep

printf '%s\n' "$Y" | egrep -q 'ERROR|ORA-' && echo error

おすすめ記事