Параметры командной строки для сценария

Они используются semodule , который представляет собой инструмент, используемый для управления модулями политики SELinux.

Операции в основном заключаются в установке / удалении, обновлении или перечислении модулей. Вы также можете использовать semodule для принудительной перезагрузки политики без выполнения каких-либо других транзакций. semodule воздействует на пакеты модулей, созданные semodule_package . Обычно эти файлы имеют суффикс .pp (пакет политик).

Таким образом, модули политик сгруппированы в этих списках, тогда SELinux модуляризация объединит их, когда система загрузится в активную политику. Затем эта политика загружается в память. Комбинированную двоичную версию этой загруженной политики можно найти в / etc / selinux / target / policy

-1
09.02.2019, 19:21
1 ответ

-d представляет собой то, для чего он запрограммирован, и это не обязательно будет удаление или отладка. Например, в curl-d— это опция для данных. В вашем скрипте -dнедопустимый вариант. Ваши варианты: -a, -bи -c. Все они по сути ничего не делают.

while [ -n "$1" ]  
do  
    case "$1" in  
        -a) echo "Found the -a option" ;;  
        -b) echo "Found the -b option" ;;  
        -c) echo "Found the -c option" ;;  
         *) echo "$1 is not an option" ;;
    esac  
shift  
done  

Чтобы добавить поддержку -d, вы должны добавить ее в свой оператор case, как показано ниже:

while [ -n "$1" ]  
do  
    case "$1" in  
        -a) echo "Found the -a option" ;;  
        -b) echo "Found the -b option" ;;  
        -c) echo "Found the -c option" ;;  
        -d) echo "Found the -d option" ;;
         *) echo "$1 is not an option" ;;
    esac  
shift  
done  

Лучшим способом обработки параметров командной строки будет getopts, который будет выглядеть примерно так::

while getopts abcd opt; do 
    case $opt in
        a) echo "Found the -a option";;
        b) echo "Found the -b option";;
        c) echo "Found the -c option";;
        d) echo "Found the -d option";;
        *) echo "Error! Invalid option!" >&2;;
    esac
done

abcd— список ожидаемых аргументов.
a-проверить наличие опции -aбез параметров; выдает ошибку о неподдерживаемых параметрах.
a:-проверить наличие опции -aс параметром; выдает ошибки по неподдерживаемым параметрам. Параметр будет установлен на переменную OPTARG.
abcd-проверить опции -a, -b, -c, -d; выдает ошибки по неподдерживаемым параметрам.
:abcd-проверить наличие опций -a, -b, -c, -d; заглушает ошибки при неподдерживаемых параметрах.

opt— это переменная, в которую будет установлен текущий параметр (, также используемая в операторе case)

4
28.01.2020, 05:07

Теги

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