Я нахожу, что оболочка по умолчанию, которую я использую, когда я запускаю Терминал (с Ctrl+Alt+T) /bin/bash
.
И выполнение встроенной команды type
на bash
как:
type -p bash
возвращает результат как:
/bin/bash
Предложение того же исполняемого файла выполняется, когда я делаю Ctrl+Alt+T или говорю bash
.
Эта оболочка совпадает с вызовом команды bash
с некоторыми его опциями, переданными ему право? Если да, каковы эти опции?
Как пример, возможно, -i
опция передается, чтобы сделать оболочку удара интерактивной?
PS: Возможно, это связано также, но я, может казаться, не соединяю все части здесь.
Обычно, нет, терминал не передает опций bash
. bash
действительно, однако, принимает ряд опций по умолчанию в зависимости от того, как он был вызван. От man bash
, раздел INVOCATION
:
An interactive shell is one started without non-option arguments and
without the -c option whose standard input and error are both connected
to terminals (as determined by isatty(3)), or one started with the -i
option. PS1 is set and $- includes i if bash is interactive, allowing
a shell script or a startup file to test this state.
Интерактивная оболочка далее активирует другие опции. Далее некоторые значения по умолчанию применяются на основе имени вызова (sh
по сравнению с bash
). Продолжение читать (разделяют на set
):
-h Remember the location of commands as they are looked up
for execution. This is enabled by default.
-m Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
support it (see JOB CONTROL above)
-B The shell performs brace expansion (see Brace Expansion
above). This is on by default.
-H Enable ! style history substitution. This option is on
by default when the shell is interactive.
Объединенный, просто вызывая bash
на терминале включит эти опции.
Можно подтвердить это путем проверки значения $-
специальная переменная:
$ echo $-
himBH
Дополнительная опция, которые, возможно, устанавливают, состоит в том, если Ваш терминал установлен запустить оболочки входа в систему. В этом случае -l
явно передается терминалом как опция.