Simple: verifica se o grupo de volume é encontrado com um if

2

Estou trabalhando em um script para verificar se o grupo de volumes vg0 existe. O problema é que ele retorna Encontrado mesmo quando eu excluo o grupo de volumes. Tão inseguro o que está errado.

#!/bin/bash

if vgdisplay | grep 'vg0' | awk '{print }'; then
  echo "Found"
else
  echo "Not found"
fi
    
por user3185936 18.02.2014 / 14:40

1 resposta

2

A condição if , neste caso, é avaliada com base no código de saída de awk , que provavelmente será zero, a menos que um dos comandos anteriores no pipeline tenha falhado em executar .

Você pode usar a opção -q para grep :

if vgdisplay | grep -q 'vg0'; then
  echo "Found"
else
  echo "Not found"
fi

O mesmo também pode ser escrito como:

vgdisplay | grep -q 'vg0' && echo "Found" || echo "Not found"
    
por devnull 18.02.2014 / 15:21