Вопрос Простой: проверьте, найден ли группа томов с помощью if


Я работаю над скриптом, чтобы проверить, существует ли группа томов vg0. Проблема в том, что он возвращается. Найден, даже когда я удаляю группу томов. Так очень не уверен, что не так.

#!/bin/bash

if vgdisplay | grep 'vg0' | awk '{print $3}'; then
  echo "Found"
else
  echo "Not found"
fi

2
2018-02-18 13:40


происхождения




ответы:


if условие в этом случае оценивается на основе кода выхода awk, который, вероятно, будет равен нулю, если одна из предыдущих команд в конвейере не удалось выполнить,

Вы можете использовать -q вариант для grep вместо:

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

То же самое можно было бы записать так:

vgdisplay | grep -q 'vg0' && echo "Found" || echo "Not found"

2
2018-02-18 14:21



Вы также можете использовать vgs вместо vgdisplay; вы можете делать similer вещи с pvs для физических объемов и lvs для логических томов тоже. - starfry