Как я могу проверить, используется ли текущая оболочка от энергии?

Я выполняю OS X. На энергии, если Вы делаете :sh команда, можно опуститься до оболочки для выполнения команд. Я постоянно забываю, являюсь ли я в этой оболочке или нет.

Там какой-либо путь состоит в том, чтобы проверить, нахожусь ли я в оболочке, прибывающей из энергии?

6
задан 21.08.2011, 17:39

3 ответа

env | grep vim переменные среды списков, которые энергия передает Вашей оболочке. Я сомневаюсь VIMRUNTIME определяется, если Вы не запустили свою оболочку с энергии.

17
ответ дан 07.12.2019, 15:27

Я ввожу ps (без любых опций), и видят, перечислена ли энергия.

5
ответ дан 07.12.2019, 15:27

Можно посмотреть на название команды родительского процесса оболочки: ps -o comm= -p $PPID. Вы могли, например, изменить свою подсказку для включения идентификатора родительского процесса.

Кроме того, если Вы только хотите изменить свою подсказку в оболочках, которые не работают непосредственно в эмуляторе терминала, можно протестировать это путем проверки, совпадает ли терминал управления оболочки со своим родительским процессом. Если родитель будет эмулятором терминала, то он не будет иметь своего собственного терминала как терминала управления.

Например, если Вы вставляете следующие строки Ваш ~/.kshrc или ~/.bashrc или ~/.zshrc (выберите одно подходящее для своей оболочки), Ваша подсказка начнется {vim} если оболочка работает под vim:

parent_command=$(ps -o comm= -p $PPID)
parent_command=${parent_command##*/}
if [ "$(ps -o tty= -p $$)" = "$(ps -o tty= -p $PPID)" ]; then
  # Not running directly under a terminal emulator
  PS1="{$parent_command}$PS1"
fi

Можно ли также интересоваться частью обсуждения того, Как знать “уровень” оболочек, в которых я нахожусь?.

0
ответ дан 07.12.2019, 15:27

Теги

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