Есть ли какие-либо опции удара, с которым это вызывается?

Я нахожу, что оболочка по умолчанию, которую я использую, когда я запускаю Терминал (с Ctrl+Alt+T) /bin/bash.

И выполнение встроенной команды type на bash как:

type -p bash

возвращает результат как:

/bin/bash

Предложение того же исполняемого файла выполняется, когда я делаю Ctrl+Alt+T или говорю bash.

Эта оболочка совпадает с вызовом команды bash с некоторыми его опциями, переданными ему право? Если да, каковы эти опции?

Как пример, возможно, -i опция передается, чтобы сделать оболочку удара интерактивной?

PS: Возможно, это связано также, но я, может казаться, не соединяю все части здесь.

4
задан 13 April 2017 в 15:37

1 ответ

Обычно, нет, терминал не передает опций 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 явно передается терминалом как опция.

8
ответ дан 1 December 2019 в 09:08

Другие вопросы по тегам:

Похожие вопросы: