Terminal.app equivalente di 'xterm -e' cmd ''

4

Con xterm (e gnome-terminal , terminator , ecc.), puoi eseguire il seguente comando:

$ xterm -e 'vim somefile.txt'

xterm si aprirà ed eseguirà il programma specificato (in questo caso, Vim). Quando il programma si chiude, anche la finestra del terminale si chiude. Eseguendo il comando precedente, se si dovesse uscire da Vim, anche il terminale andrebbe via.

C'è un modo per ottenere questa (o simili) funzionalità tramite Terminal.app (su OSX)? La soluzione può essere in AppleScript, Bash o qualsiasi altra cosa, a patto che sia realizzabile tramite comandi che potrei eseguire in uno script Bash.

    
posta Chris Knadler 04.01.2014 - 08:28
fonte

2 risposte

6

Con AppleScript, puoi fare:

on run argv
    set command to item 1 of argv --you can customize this to be constant
    tell application "Terminal"
        activate
        do script (command & "; exit")
    end tell
end run

Questo aprirà Terminal e gli dirà di eseguire un comando (le tue impostazioni predefinite devono chiudere la finestra quando la shell esce). Per eseguirlo, usa solo osascript filename.scpt "$command_to_run"

    
risposta data 13.01.2014 - 13:56
fonte
1

Potresti usare il comando open ( /usr/bin/open ).

Ad esempio, supponiamo di voler aprire il file test.txt con Textmate e chiudere la shell in seguito. Potrei usare il seguente comando:

open -W -a Textmate test.txt && exit
  • L'opzione -W farà aspettare che Textmate sia chiuso.
  • L'opzione -A ti consente di specificare l'applicazione

La seconda parte della riga di comando ( exit ) non farà uscire l'applicazione del terminale , ma può chiudere la finestra del terminale se cambi le preferenze predefinite . Nelle preferenze di Terminale, fai clic sulla scheda Shell e modifica l'impostazione Quando la shell esce da a Chiudi la finestra

Sevuoiveramenteusciredall'applicazioneTerminale,puoisostituireexitconunachiamataaunoscriptBash.Adesempio:

#!/bin/shecho|osascript<<EOFtellapplication"Terminal"
  quit
end tell
EOF

(Fonte adattata da Suggerimenti per Mac OS X )

Questo causerà comunque che Terminal mostri un popup che ti chiede se vuoi chiudere l'applicazione.

    
risposta data 13.01.2014 - 22:53
fonte

Leggi altre domande sui tag