Лучшая справочная информация, которую я смог найти, была следующая: http://tldp.org/LDP/abs/html/exitcodes.html
Согласно этому:
1
- общий сборник для ошибок, и я всегда видел, как он используется для ошибок, определенных пользователем.
2
- для неправильного использования встроенных команд оболочки, например, синтаксической ошибки.
Чтобы ответить на ваш вопрос напрямую, ваш скрипт будет в порядке, используя зарезервированные коды ошибок, он будет работать, как ожидалось, если вы обработаете ошибку на основе на коде ошибки = 1/2/3.
Однако, возможно, вы запутаетесь, если вы встретите кого-то, кто знает и использует зарезервированные коды ошибок, что кажется довольно редким.
Другой доступный вариант - повторить ошибку, если она есть, а затем выйти, при условии, что ваш сценарий следует соглашению Linux «отсутствие новостей - хорошие новости», а в случае успеха echo ничего не выводит.
if [ $? -ne 0 ];then
echo "Error type"
exit 1
fi
Сначала он запускает команду ip
с аргументом a
, который в Linux является сокращением -от ip address
, что выводит несколько строф из нескольких строк, соответствующих вашим сетевым устройствам и их возможным сетевые адреса.
Этот вывод затем отправляется команде egrep
, которую просят сопоставить (напечатать )строк ввода, которые соответствуют заданному регулярному выражению. Похоже, что регулярное выражение предназначено для сопоставления расширенного набора адресов IPv4.
Регулярное выражение точно соответствует:
(сгруппированы вместе)-«любая одиночная цифра от 0 до 9 :от 1 до 3 из них, за которой следует точка» --и требуют последовательно трех элементов этой группы
, за которым следует одна цифра от 0 до 9 :между 1 и 3 из них.
IP-адреса будут соответствовать этому шаблону; например:1.234.56.7
или 1.1.1.1
, но не -IPv4-адреса также будут соответствовать (, если они появятся в выводе ip a
), например:999.888.777.666
или даже 1.2.3.999
.