Как я могу проверить, получила ли моя команда хоста в сценарии действительный IP-адрес

У вас есть раздел подкачки между / dev / sda2 и свободным пространством. Отключите подкачку, удалите раздел подкачки из / etc / fstab , затем используйте Gparted для удаления раздела подкачки / dev / sda3 и расширенного раздела / dev / sda4 ; после этого вы сможете расширить / dev / sda2 в соседнем свободном пространстве.

1
05.06.2019, 17:40
2 ответа

host выйдет из 1, если он не сможет разрешить ваш ввод, поэтому вы можете использовать конструкцию if:

if ! host "$1" | grep -v 'not found'; then
  printf '%s\n' '-'
fi

Мы используем !, чтобы проверить, не сработает ли команда (, так как я предполагаю, что вы хотите просто распечатать вывод как обычно, если он проходит ). hostотправляет ошибку not foundна стандартный вывод вместо стандартного вывода, поэтому мы не можем просто скрыть стандартный вывод. Вот почему я передаю команду хоста в grep -v 'not found', это скроет ошибку not found, если она существует, и по-прежнему выводит 1, заставляя конструкцию if печатать -. Если он не находит not found, он выйдет из 0.

2
27.01.2020, 23:30

Достаточно ли статуса выхода? Вы можете включить $?, статус выхода последней команды, даже если вы отключили вывод. Для hostстатус выхода 0 — успех, 1 — ошибка

[17:54] [ws ~] $ host 127.0.0.112 1>&2 >/dev/null
[17:54] [ws ~] $ echo $?
1
[17:54] [ws ~] $ host 127.0.0.1 1>&2 >/dev/null
[17:54] [ws ~] $ echo $?
0
0
27.01.2020, 23:30

Теги

Похожие вопросы