Почему мне нужно дважды вводить exit в моем терминале?

Как указывает @steeldriver, это легко, если у вас не жадные регулярные выражения. Если нет, вы можете сделать это с помощью цикла, например:

sed ':a;s/PATTERN-2/\n/;s/PATTERN-1.*\n//;ta' test.txt

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

1
15.12.2016, 01:41
2 ответа

Первое, что нужно понять, что bicon - это виртуальная оболочка, поэтому вам нужно дважды выйти: один из bicon и один из bash.

Итак, чтобы избежать двойного выполнения команды .bashrc , вы должны поместить команду, включающую bicon, в начало .bashrc .

Также, чтобы избежать двойного выхода, вы можете сделать:

alias exit='kill -9 $(ps -p $PPID -o ppid=)'
1
27.01.2020, 23:13

Попробуйте запустить bicon.bin с exec bicon.bin, возможно, с аргументами для запуска оболочки в качестве оболочки входа.

Когда вы запускаете bicon.bin, он порождает оболочку, поэтому теперь у вас есть (1) исходная оболочка, (2) bicon.bin и (3) оболочка, порожденная bicon.bin. Первый exit выходит из оболочки, порожденной bicon.bin, а второй exit выходит из исходной оболочки. С exec исходная оболочка заменяется на bicon.bin, поэтому для завершения сеанса будет достаточно одного exit.

6
27.01.2020, 23:13

Теги

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