Как закрыть терминал из сценария удара

Я плохо знаком с этим сайтом и с Linux.

Я пытаюсь сделать простой сценарий, что откроет новый терминал с новым именем, и закрывать старый терминал от того, куда сценарий работал.

Проблема, с которой я встречаюсь, состоит в том, что число процесса изменяется. Таким образом, если я запускаю процесс и тип: echo $$ Я вижу 10602. После того, как конец процесса, если новый терминал загружается число процесса, изменяется на 10 594. Таким образом, я на самом деле уничтожаю неправильный процесс..

В данный момент я использую этот код:

echo -n "Type new terminal name > "  # displays messagebox
read text                            # load messagebox input
echo "$text" > /etc/terminalname     # write messagebox input to file

gnome-terminal                       # open terminal with new name

kill -9 $PPID                        # this will kill the old terminal
exit                                 # exit script
4
задан 3 September 2016 в 19:49

2 ответа

Я предположу, что Вы выполняете те команды в сценарии.

Следует иметь в виду это $$ pid рабочего процесса удара. Если Вы запускаете скрипт, что процесс удара сценария является ребенком Вашей текущей интерактивной оболочки. Если Вы уничтожаете $$ в сценарии Вы уничтожаете сценарий, не родительскую оболочку.

Bash хранит родительский pid в $PPID переменная, таким образом, Вы хотите

#!/bin/bash
gnome-terminal &   # launch a new terminal
kill $PPID         # kill this script's parent

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

Как в стороне, вместо

echo -n "Type new terminal name > "  # displays messagebox
read text                            # load messagebox input

сделать

read -p "Type new terminal name > " text
3
ответ дан 1 December 2019 в 10:03

Я действительно находил подходящее решение для этой проблемы благодаря данным ответам. Это просто могло быть сделано с командой kill -9 $var (где var является $PPID).

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

0
ответ дан 1 December 2019 в 10:03

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

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