ボリュームグループvg0が存在するかどうかを確認するスクリプトを作成しています。問題は、ボリュームグループを削除しても、Foundが返されることです。だから何が間違っているのか非常によくわからない。
#!/bin/bash
if vgdisplay | grep 'vg0' | awk '{print $3}'; then
echo "Found"
else
echo "Not found"
fi
この場合のif
条件は、awk
の終了コードに基づいて評価されます。これは、パイプラインの前のコマンドの1つ実行に失敗しました =。
代わりにgrep
に-q
オプションを使用できます:
if vgdisplay | grep -q 'vg0'; then
echo "Found"
else
echo "Not found"
fi
同じように書くこともできます:
vgdisplay | grep -q 'vg0' && echo "Found" || echo "Not found"