1

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

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

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

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

1 ответ1

1

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

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

Быстрая демонстрация

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .