Что означает [[$ - = * я *]] в bash?

Я устанавливаю liquidprompt, и в документации они просят вас добавить [[ $- = *i* ]] && source ~/liquidprompt/liquidprompt в .bashrc.

Я пытаюсь понять первую часть строки, но это трудно для noob в bash, как я. Если у кого-нибудь хороший документ или ответ...

Ответ 1

$- содержит текущие параметры оболочки.

В [[ ... ]] правая часть a = интерпретируется как шаблон, если не цитируется. Поэтому *i* означает i, которому может предшествовать или следовать чему-либо.

Иными словами, он проверяет, существует ли опция i, т.е. является ли текущая оболочка интерактивной.

Ответ 2

Он проверяет, содержат ли опции для оболочки $- i. i предназначен для интерактивных

На странице Bash:

Интерактивная оболочка запускается без аргументов без опций и        без опции -c, стандартный ввод и ошибка которой связаны между собой        к терминалам (как определено isatty (3)), или один начинается с -i        вариант. PS1 установлен, а $- включает i, если bash является интерактивным, что позволяет        оболочку script или файл запуска для проверки этого состояния.

Также актуально