Я работаю над сценарием bash для создания логических томов. У меня есть команда, которую я хочу добавить, чтобы проверить, все ли они успешны. Какой самый простой способ сделать это?
#!/bin/bash
pvcreate /dev/md5
vgcreate vg0 /dev/md5
lvcreate -L 200MB vg0 -n test
bash
command-line
user3185936
источник
источник
Источник: StackOverFlow
источник
Это было бы традиционным:
die
Вы должны определить функцию , которая печатает сообщение об ошибке и затем завершает работу. Пример реализации может бытьКогда вы делаете это так, скрипт не выдаст никаких выходных данных, если что-то не получится, и в этом случае он не пойдет дальше. Если вы хотите, чтобы он продолжал работать даже в случае сбоя команды, удалите
exit
строку из реализацииdie
.Если вы также хотите получить сообщение для каждой успешной команды, вы можете сделать это:
и аналогично для двух других команд.
источник
Не тестет. Но должно работать.
Базовая структура if-else:
источник
[
и НЕ]
являются частью синтаксиса. встроенная оболочка, псевдоним для . Причина, по которой вы заканчиваете это, - чтобы он выглядел симметрично. См. Mywiki.wooledge.org/BashFAQ/031 для получения дополнительной информации. ( Подсказка: хочешь просто и так далее.)if
[
test
]
if pvcreate /dev/md5
[pvcreate
--- команда не найдена. Пожалуйста, отредактируйте или удалите этот ответ, он совершенно неправильный.Если все команды зависят от одной перед выполнением, вы можете использовать
set -e
:Обратите внимание, что вышеприведенное будет завершено без конкретного сообщения о том, какая команда не выполнена.
источник