Как я знаю, выполняю ли я вложенную оболочку?

Когда использование *отклоняет оболочку (обычно удар), я часто порождаю подоболочку, с которой я могу заботиться о небольшой задаче (обычно в другом каталоге), затем выйти из возобновить сессию родительской оболочки.

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

Существует ли простой способ определить, работаю ли я во вложенной оболочке? Или я иду о своей проблеме (путем порождения подоболочек) абсолютно неправильным способом?

60
задан 22 December 2010 в 19:39

1 ответ

Как [1 113] @John Kugelman говорит , echo $SHLVL скажет Вам глубину оболочки удара.
И как [1 114] @Dennis шоу Williamson
, можно отредактировать подсказку через PS1 переменная, чтобы заставить это печатать это значение.

я предпочитаю, что это всегда печать значение глубины оболочки, таким образом, вот то, что я сделал: отредактируйте Ваш "~/.bashrc" файл:

gedit ~/.bashrc

и добавляют следующую строку в конец:

export PS1='\$SHLVL'":$SHLVL\n$PS1"

Теперь Вы будете всегда , посмотрите распечатку своего текущего уровня удара чуть выше Вашей подсказки. Исключая: здесь Вы видите, что я на уровне удара (глубина) 2, как обозначено $SHLVL:2:

$SHLVL:2
7510-gabriels ~ $

Теперь, следите за подсказкой, поскольку я спускаюсь на некоторые уровни удара через эти bash команда, затем возвратитесь через exit. Здесь Вы видите мои команды и запрашиваете (ответ), запускающийся на уровне 2 и снижающийся 5, затем возвращаясь до уровня 2:

$SHLVL:2 
7510-gabriels ~ $ bash
$SHLVL:3 
7510-gabriels ~ $ bash
$SHLVL:4 
7510-gabriels ~ $ bash
$SHLVL:5 
7510-gabriels ~ $ exit
exit
$SHLVL:4 
7510-gabriels ~ $ exit
exit
$SHLVL:3 
7510-gabriels ~ $ exit
exit
$SHLVL:2 
7510-gabriels ~ $ 

Премия: всегда показывайте в Вашем терминале свой ток git branch, Вы идете также!

Заставляют Вашу подсказку также показать Вам Ваш ответвление мерзавца, Вы работаете над [1 141] при помощи следующего в Ваш "~/.bashrc" файл вместо этого:

git_show_branch() {
    __gsb_BRANCH=$(git symbolic-ref -q --short HEAD 2>/dev/null)
    if [ -n "

Как [1 113] @John Kugelman говорит , echo $SHLVL скажет Вам глубину оболочки удара.
И как [1 114] @Dennis шоу Williamson
, можно отредактировать подсказку через PS1 переменная, чтобы заставить это печатать это значение.

я предпочитаю, что это всегда печать значение глубины оболочки, таким образом, вот то, что я сделал: отредактируйте Ваш "~/.bashrc" файл:

[110]

и добавляют следующую строку в конец:

[111]

Теперь Вы будете всегда , посмотрите распечатку своего текущего уровня удара чуть выше Вашей подсказки. Исключая: здесь Вы видите, что я на уровне удара (глубина) 2, как обозначено $SHLVL:2:

$SHLVL:2
7510-gabriels ~ $

Теперь, следите за подсказкой, поскольку я спускаюсь на некоторые уровни удара через эти bash команда, затем возвратитесь через exit. Здесь Вы видите мои команды и запрашиваете (ответ), запускающийся на уровне 2 и снижающийся 5, затем возвращаясь до уровня 2:

[112]

Премия: всегда показывайте в Вашем терминале свой ток git branch, Вы идете также!

Заставляют Вашу подсказку также показать Вам Ваш ответвление мерзавца, Вы работаете над [1 141] при помощи следующего в Ваш "~/.bashrc" файл вместо этого:

[113]

Источник: Я понятия не имею, куда git_show_branch() первоначально прибывает из, но я получил его от Jason McMullan 5 апреля 2018. Я затем добавил $SHLVL часть, показанная выше только прошлой недели.

Демонстрационный вывод:

ведущее устройство $SHLVL:2
7510-gabriels ~/GS/dev/temp $

И вот снимок экрана, показывающий его во всей его славе. Заметьте имя ответвления мерзавца, master, выделенный в белом !

enter image description here

Перекрестно сослался:

_gsb_BRANCH" ]; then echo "

Как [1 113] @John Kugelman говорит , echo $SHLVL скажет Вам глубину оболочки удара.
И как [1 114] @Dennis шоу Williamson
, можно отредактировать подсказку через PS1 переменная, чтобы заставить это печатать это значение.

я предпочитаю, что это всегда печать значение глубины оболочки, таким образом, вот то, что я сделал: отредактируйте Ваш "~/.bashrc" файл:

[110]

и добавляют следующую строку в конец:

[111]

Теперь Вы будете всегда , посмотрите распечатку своего текущего уровня удара чуть выше Вашей подсказки. Исключая: здесь Вы видите, что я на уровне удара (глубина) 2, как обозначено $SHLVL:2:

$SHLVL:2
7510-gabriels ~ $

Теперь, следите за подсказкой, поскольку я спускаюсь на некоторые уровни удара через эти bash команда, затем возвратитесь через exit. Здесь Вы видите мои команды и запрашиваете (ответ), запускающийся на уровне 2 и снижающийся 5, затем возвращаясь до уровня 2:

[112]

Премия: всегда показывайте в Вашем терминале свой ток git branch, Вы идете также!

Заставляют Вашу подсказку также показать Вам Ваш ответвление мерзавца, Вы работаете над [1 141] при помощи следующего в Ваш "~/.bashrc" файл вместо этого:

[113]

Источник: Я понятия не имею, куда git_show_branch() первоначально прибывает из, но я получил его от Jason McMullan 5 апреля 2018. Я затем добавил $SHLVL часть, показанная выше только прошлой недели.

Демонстрационный вывод:

ведущее устройство $SHLVL:2
7510-gabriels ~/GS/dev/temp $

И вот снимок экрана, показывающий его во всей его славе. Заметьте имя ответвления мерзавца, master, выделенный в белом !

enter image description here

Перекрестно сослался:

_gsb_BRANCH" fi } export PS1="\e[7m\$(git_show_branch)\e[m\n\h \w $ " export PS1='\$SHLVL'":$SHLVL $PS1"

Источник: Я понятия не имею, куда git_show_branch() первоначально прибывает из, но я получил его от Jason McMullan 5 апреля 2018. Я затем добавил $SHLVL часть, показанная выше только прошлой недели.

Демонстрационный вывод:

ведущее устройство $SHLVL:2
7510-gabriels ~/GS/dev/temp $

И вот снимок экрана, показывающий его во всей его славе. Заметьте имя ответвления мерзавца, master, выделенный в белом !

enter image description here

Перекрестно сослался:

0
ответ дан 1 November 2019 в 10:23

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

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