Как закрыть терминал с помощью моей программы?

Как насчет скрытия папок в том месте, которое они не видят, и установить параметр nautilus, чтобы не показывать скрытые папки по умолчанию? Самый простой способ скрыть папку - это начать с ее имени. Я знаю, что это не решение вопроса, который вы задали, а просто решение, которое, как я думал, может работать для вашей проблемы.

1
задан 30 April 2017 в 21:25

3 ответа

Хотя вы не можете заставить свое скомпилированное приложение закрыть окно терминала, в котором оно запущено, легко сделать это, изменив способ выполнения вашей программы.

Например, если ваш исполняемое приложение может быть запущено с помощью ./myprogramm, вы можете просто ввести команду ниже в своем терминале, чтобы сначала запустить myprogramm, и как только она закончится, запустите команду exit, чтобы закрыть оболочку, а вместе с ней и все окно терминала :

./myprogramm ; exit

Или, может быть, было бы еще лучше закрыть окно терминала, если ваше приложение успешно выйдет, без какой-либо ошибки (указано кодом состояния выхода, отличным от 0). Вы можете использовать && вместо ; для запуска второй команды только в том случае, если первая команда была успешной:

./myprogramm && exit

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

exec ./myprogramm

Одно большое различие между первыми двумя подходами ([ f9] и && exit), а последний, использующий exec, состоит в том, что в первом случае вы можете убить команду, которую вы выполнили, нажав Ctrl + C, и вы вернетесь в оболочку, окно останется открытым. Если вы использовали exec, это также убьет ваше приложение, но поскольку в нем не будет больше оболочки, в которой она будет запущена, окно терминала также будет немедленно закрыто.

1
ответ дан 22 May 2018 в 23:03

Хотя вы не можете заставить свое скомпилированное приложение закрыть окно терминала, в котором оно запущено, легко сделать это, изменив способ выполнения вашей программы.

Например, если ваш исполняемое приложение может быть запущено с помощью ./myprogramm, вы можете просто ввести команду ниже в своем терминале, чтобы сначала запустить myprogramm, и как только она закончится, запустите команду exit, чтобы закрыть оболочку, а вместе с ней и все окно терминала :

./myprogramm ; exit

Или, может быть, было бы еще лучше закрыть окно терминала, если ваше приложение успешно выйдет, без какой-либо ошибки (указано кодом состояния выхода, отличным от 0). Вы можете использовать && вместо ; для запуска второй команды только в том случае, если первая команда была успешной:

./myprogramm && exit

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

exec ./myprogramm

Одно большое различие между первыми двумя подходами (; exit и && exit), а последний, использующий exec, состоит в том, что в первом случае вы можете убить команду, которую вы выполнили, нажав Ctrl + C, и вы вернетесь в оболочку, окно останется открытым. Если вы использовали exec, это также убьет ваше приложение, но поскольку в нем не будет больше оболочки, в которой она будет запущена, окно терминала также будет немедленно закрыто.

1
ответ дан 18 July 2018 в 14:01

Хотя вы не можете заставить свое скомпилированное приложение закрыть окно терминала, в котором оно запущено, легко сделать это, изменив способ выполнения вашей программы.

Например, если ваш исполняемое приложение может быть запущено с помощью ./myprogramm, вы можете просто ввести команду ниже в своем терминале, чтобы сначала запустить myprogramm, и как только она закончится, запустите команду exit, чтобы закрыть оболочку, а вместе с ней и все окно терминала :

./myprogramm ; exit

Или, может быть, было бы еще лучше закрыть окно терминала, если ваше приложение успешно выйдет, без какой-либо ошибки (указано кодом состояния выхода, отличным от 0). Вы можете использовать && вместо ; для запуска второй команды только в том случае, если первая команда была успешной:

./myprogramm && exit

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

exec ./myprogramm

Одно большое различие между первыми двумя подходами (; exit и && exit), а последний, использующий exec, состоит в том, что в первом случае вы можете убить команду, которую вы выполнили, нажав Ctrl + C, и вы вернетесь в оболочку, окно останется открытым. Если вы использовали exec, это также убьет ваше приложение, но поскольку в нем не будет больше оболочки, в которой она будет запущена, окно терминала также будет немедленно закрыто.

1
ответ дан 24 July 2018 в 20:18

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

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