Evitare il prompt [processo completato] al termine dello script del terminale su Mac OS X.


32

Nel mio editor di testo, ho associato un tasto di scelta rapida per distribuire il mio codice invocando un comando simile

/usr/bin/open /Users/blahblah/run_deploy

Questo script di distribuzione carica il mio codice sul mio server, ecc. Sto usando "open" in modo da poter vedere l'output in una nuova finestra del terminale in caso di errori. Molto comodo, ma alla fine lascia aperta la finestra del terminale con il testo "[Processo completato]".

Un modo per saltare questo e invece semplicemente chiudere automaticamente la finestra?

Processo terminale completato


1
Dare che hai impostato Terminale per chiudere la finestra quando la shell esce, sembra un problema di Terminale. Hai provato a eliminare il file delle preferenze com.apple.Terminal.plistdalla cartella Preferenze e hai provato a impostarlo di nuovo?
Chealion,

Hai ancora questo problema?
Daniel Beck

Risposte:


52

In Preferenze terminale , nel riquadro Profili selezionare il Profilo che si utilizza (dovrebbe essere indicato "predefinito" sotto il nome), selezionare il riquadro secondario Shell e modificare « Quando la shell esce: » su « Chiudi se la shell è uscita in modo pulito ».

Non nasconderà il [Process completed]messaggio, ma chiuderà la finestra se il codice di uscita ha avuto esito positivo.


Per qualche motivo non posso modificare le impostazioni nella finestra del terminale. Se li cambio in un'altra finestra del terminale e "uso come predefinito", tuttavia non vengono utilizzati nella nuova finestra del terminale. Ecco quello che i nuovi look finestra di terminale come: i.imgur.com/u3tk4.png
Bemmu

Per prima cosa per rendere più veloce il test, esegui quanto segue: echo 'say hello' > test; chmod +x test(creerà un eseguibile che ti saluterà), eseguendolo open testo facendo doppio clic su di esso nel Finder lo eseguirà con il terminale per impostazione predefinita. Nella tua schermata nessuno degli schemi è selezionato (non so come, non riesco a deselezionarli tutti), quindi seleziona Base in quanto è contrassegnato come «Predefinito» e imposta le impostazioni di chiusura, quindi prova a eseguire lo script.
tig

Grazie, ma che anche non ha funzionato: i.imgur.com/cCo49.png
Bemmu

Quale versione del sistema operativo usi (non so se può essere correlato, io uso 10.6.4)? Forse è dovuta posta non letta? Prova a usarlo mailper leggerlo. Forse qualcosa non va con il logout? Hai un ~/.bash_logoutfile, se sì, cosa c'è dentro? Prova a correre bash -c exit && echo 'ok'- dovresti vedere 'ok', prova anche a eseguire solo exitnella nuova shell - dovrebbe chiudere la finestra. Usi i gruppi di finestre? i.imgur.com/thPNV.png
tig

1
Potresti mettere un comando "killall Terminal" alla fine del tuo script o qualcosa del genere? So che chiuderà la finestra in ogni caso, ma puoi almeno guardare cosa sta succedendo DURANTE l'esecuzione dello script (e potresti anche spingere l'output in un registro, per ogni evenienza).
jrc03c,

0

Riparare le autorizzazioni tramite l' Disk utilityapp ha risolto il problema per me.

Ho continuato a vedere l'errore Consolenell'app:

20/08/2015 01:17:42.318 login[3291]: in pam_sm_open_session(): Unable to write the utmp record.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.