Автоматично закрийте Термінал після виконання сценарію


0

Як я автоматично закриваю термінал після виконання сценарію?

#!/bin/bash
cd ~/Desktop/sh-scripts/
./start.sh &
// ??? how to close Terminal

Відповіді:


2

Припустимо, ви називаєте цей код скрипту, який ви опублікували з іншої оболонки. Якщо ви хочете, щоб Terminal.app вийшов, ви можете використовувати просту команду AppleScript :

osascript -e 'tell application "Terminal" to quit'

Те саме стосується iTerm2 або будь-якого іншого додатка. Просто змініть його ім'я в "Terminal". Або, щоб вийти із самого переднього додатка, як згадує @Lri:

osascript -e 'quit app (path to frontmost application as text)'

Якщо ваш скрипт замість цього запускається неінтерактивно, то його має бути достатньо exit. Вікно терміналу не закриється, якщо ви не зміните налаштування терміналу:


Ви також можете просто вийти з поточного додатка osascript -e 'quit app (path to frontmost application as text)'.
Лрі

І якщо вам просто потрібна вкладка / вікно поточного сеансу закрити, exitбуде добре.
kopischke

@kopischke Ні, це просто вийде із запущеного сценарію. Термінальна вкладка / вікно, що містить оболонку, в яку було викликано сценарій, залишиться
slhck

@slhck: ах, моє погано - це потрібно встановити в налаштуваннях вашого сеансу в Terminal.app. За замовчуванням, як ви правильно сказали, не закривати вікно - я змінив це і забув про нього. Отже: exitтакож закриється вікно / вкладка терміналу, якщо для вашого параметра сеансу «Оболонка → При виході» в Terminal.app встановлено значення «Закрити вікно» або «Закрити вікно, якщо помилки не сталося».
kopischke

ОП працює, проте, сценарій. Спробуйте: створіть скрипт оболонки, потім додайте exitв кінці та запустіть цей скрипт із вікна терміналу. Сценарій виходить, але вікно залишається @kop
slhck

0

Якщо ви хочете , щоб ваш Баш скрипт (наприклад , виконуваний .sh - файл) , щоб вбити додаток OS X Terminal після виконання скрипта буде зроблено, просто додайте цей рядок в кінці сценарію:

kill `ps -A | grep -w Terminal.app | grep -v grep | awk '{print $1}'`
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.