Вот скрипт который я разбирал
#!/usr/bin/env bash
# Указываем интерпретатору какую программу вызвать, если скрипт исполняемый
# Не гарантируется, что на различных системах
# путь к bash будет одинаковым. Указывая env
# мы защищаем себя от таких неожиданностей
# rpm-check.sh
# Запрашивает описание rpm-архива, список файлов, и проверяется возможность установки.
# Результат сохраняется в файле.
#
# Этот сценарий иллюстрирует порядок работы со вложенными блоками кода.
SUCCESS=0
E_NOARGS=65
if [ -z "$1" ]
then
echo
echo "Порядок использования: Для сценария --- `basename $0`--- , в качества аргумента -\
укажите путь к файлу с расширением *.rpm"
echo
echo "$E_NOARGS - код завершения"
exit $E_NOARGS
fi
{
echo
echo "Описание архива:"
echo
rpm -qp $1 # Запрос описания.
echo
echo "Список файлов:"
echo
rpm -qpl $1 # Запрос списка.
echo
rpm -i --test $1 # Проверка возможности установки.
if [ "$?" -eq $SUCCESS ]
then
echo "$1 может быть установлен."
else
echo "$1 -- установка невозможна!"
fi
echo
} > "$1.test" # Перенаправление вывода в файл.
echo
echo "Результаты проверки rpm-архива находятся в файле ---$1.test---"
exit 0
# Переменная SUCCESS нужна для сравнения значения с переменной $?
# Переменная $? - содержит exit-статус последней выполненной команды
# Переменная $E_NOARGS
# if [ -z "$1" ] - проверяется условие, если передаваемый аргумент отсутствует
# Проверка условия выдает истину
# then - тогда выполняется блок команд
# basename - утилита
# $0 - аргумент, означающий имя файла
# basename $0 - данная команда выводит имя данного сценария
# при этом не выводится полный путь,
# так как утилита отсекает это
# rpm -qp - проверка пакетов в группе, проверка файлов пакета
# rpm -i - показать список файлов
# --test - не устанавливать, а только сообщить,удастся ли установка
C переменной
SUCCESS=0 - так обстоят дела.
Как понимаю назвать ее могу как хочу и не обязательно заглавными буквами, так ?
Код завершения выдаваемый переменной $? - (проверка exit-статуса) - может быть 0 или 1, в зависимости, что вы хотите , чтобы при проверке, последнего статуса выполнения команды ( успешного или нет) выполнились какие-то определенные команды , так ?
Например в задаче выше проверяется, если код завершения, выдаваемый переменной $? = 0, значит условие соблюдено и выполняется блок определенных команд, иначе выйдет сообщение о невозможности установки...
Но вот переменная E_NOARGS=65 -
вызывает вопросы... Почему называется E_NOARGS, а не как то по другому, это что , данное имя зарезервировано в языке Bash или системой

Почему значение
E_NOARGS=65 , а почему не 100, или 137

И почему нужно указывать вот так
exit $E_NOARGS
что это за синтаксис, подскажите пожайлуста
