Поиск по сайту:
Отличительное свойство человека — желать непременно все начинать сначала.. (И. Гёте).

Как проверить успешность выполнения команды в Bash1 мин для чтения

16.02.2021
Bash Heredoc

Пишете ли вы сценарий или просто любопытствуете, полезно знать, что команда прошла успешно. Лично мне больше всего нужна эта функция в сценариях bash. Когда вы пишете сценарий для серии команд и предыдущий результат влияет на последующие, лучше проверить, сработало ли оно.

В этой статье мы продемонстрируем несколько способов проверить, была ли ваша команда в bash успешной. Будут примеры сценариев, которые продемонстрируют его использование. Однако в зависимости от того, какую команду вы запускаете, для проверки может потребоваться разная тактика.

 

Проверка команды выполнена успешно

Всякий раз, когда команда запускается, возвращаемое значение команды сохраняется в определенной переменной в bash. В первом примере запустим диспетчер пакетов для обновления системы. В нашем случае это Ubuntu, поэтому команда будет примерно такой.

$ sudo apt update && sudo apt upgrade -y

Здесь, по выходным данным, мы можем легко сказать, что команда выполнена успешно. Теперь каждая команда, выполняемая в оболочке bash, возвращает значение, которое хранится в переменной bash «$?». Чтобы получить значение, запустите эту команду.

$ echo $?

Если команда выполнена успешно, возвращаемое значение будет 0. Если возвращаемое значение иное, значит, она не выполнилась должным образом. Давайте проверим это. Выполните ту же команду обновления, но на этот раз прервите ее, нажав «Ctrl + C».

 

Теперь проверьте значение переменной bash.

$ echo $?

Значение не равно 0, поэтому определенно есть ошибка. Здесь мы заставили команду прерваться. Как это может быть полезно в сценариях bash? Вот быстрый пример того, как использовать его в сценарии bash. Сохраните сценарий как текстовый файл с расширением .sh.

#!/bin/bash
<command>
if [ $? -eq 0 ]; then
echo OK
else
echo FAIL
fi

Сделайте файл исполняемым.

$ chmod +x demo.sh

Теперь запустим сценарий.

$ ./demo.sh

После выполнения любой команды bash обновит значение переменной. В этом случае после выполнения команды echo мы можем определить, успешно она выполнилась или нет. Замените команду echo чем угодно и вуаля!

Читать  Команда Whatis в Linux

Вот еще один интересный метод, который может подтвердить успешность выполнения команды. Это просто однострочная команда, которая очень проста.

$ <command> && echo SUCCESS || echo FAIL

Здесь команда разделена на две части символом «||». Если первая команда выполняется успешно, должна выполняться первая команда echo. В противном случае будет запущена вторая команда echo. Давайте проверим это на примере.

$ sudo apt update && echo SUCCESS || echo FAIL

Первая часть не удалась, поэтому первая команда echo была пропущена. Вместо этого была запущена вторая команда echo, указывающая на то, что первая часть не была выполнена успешно. Что, если все прошло успешно?

 

Была активирована первая команда echo.

Вот еще один пример сценария bash.

#!/bin/bash
if <command>; then
echo “Success”
else
echo “Failure, exit status: $?”
fi

Запускаем скрипт.

$ ./demo.sh

Если команда не удалась, результат будет другим.

Какой сценарий bash использовать? Мы настоятельно рекомендуем первый, в котором сначала запускается команда, а затем значение «$?» извлекается в переменной, а затем выполняйте все, что хотите, в зависимости от значения переменной.

 

Последние мысли

Bash — это мощная оболочка с мощной функцией создания сценариев. Если вы хотите узнать, удалось ли выполнить ранее выполненную команду, это одни из самых надежных методов.

Какой метод использовать? Это зависит от того, какой цели вы хотите достичь. Для использования в терминале и в командной строке лучше всего использовать пример одной команды. Что касается сценариев bash, не стесняйтесь, какой метод лучше всего подходит вам, особенно первый пример сценария, который мы продемонстрировали.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно

Рекомендуемое
В этой статьи показаны некоторые из самых основных команд Linux,…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: