Что означает [[$ - = * я *]] в 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 или файл запуска для проверки этого состояния.
Также актуально