Как проверить параметры оболочки?

Как проверить параметры оболочки?

Я хочу проверить, какие опции включены для моей текущей оболочки. Например, я хочу узнать, был ли я вызван с -xили -eили любым количеством других опций.

Я sourceскрипт оболочки со строкой shebang #!/bin/bash -xи позже пытаюсь отключить 'x' с помощью a set +xв конце скрипта. Теперь я хочу проверить, set +xудалась ли моя строка.

Попытка решения

Я обнаружил printenvи setкак способы проверки некоторой информации о текущей оболочке, но ни один из них, похоже, не содержит переменной, которая хранит x eили что-то в этом роде.

решение1

Это в $-переменной.

Смотритедокументация для setкоманды-- прокрутите страницу вниз до конца, и вы увидите «Текущий набор параметров можно найти в $-».

Краткая демонстрация

$ bash
$ echo $-
himBH
$ set -f; set +H
$ echo $-
fhimB
$ [[ $- == *i* ]] && echo This is an interactive shell
This is an interactive shell

решение2

Также есть $BASHOPTSи $SHELLOPTS.

источник

Связанный контент