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

4

Con xterm (y gnome-terminal , terminator , etc.), puede ejecutar el siguiente comando:

$ xterm -e 'vim somefile.txt'

xterm abrirá y ejecutará el programa especificado (en este caso, Vim). Cuando el programa sale, la ventana del terminal también se cierra. Al ejecutar el comando anterior, si tuviera que abandonar Vim, el terminal también desaparecerá.

¿Hay alguna forma de obtener esta funcionalidad (o similar) a través de Terminal.app (en OSX)? La solución puede estar en AppleScript, Bash o cualquier otra cosa realmente, siempre que sea posible mediante comandos que pueda ejecutar en un script de Bash.

    
pregunta Chris Knadler 04.01.2014 - 08:28

2 respuestas

6

Con AppleScript, puedes hacer:

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

Esto abrirá la Terminal y le indicará que ejecute un comando (la configuración predeterminada debe cerrar la ventana cuando se cierre el shell). Para ejecutar esto, solo usa osascript filename.scpt "$command_to_run"

    
respondido por el 0942v8653 13.01.2014 - 13:56
1

Podría usar el comando open ( /usr/bin/open ).

Por ejemplo, digamos que quiero abrir el archivo test.txt con Textmate y luego cerrar el shell. Podría usar el siguiente comando:

open -W -a Textmate test.txt && exit
  • La opción -W hará que espere hasta que se cierre Textmate.
  • La opción -A le permite especificar la aplicación

La segunda parte de la línea de comando ( exit ) no hará que la aplicación del Terminal se cierre, pero puede cerrar la ventana del Terminal si cambia las preferencias predeterminadas . En las preferencias de la Terminal, haga clic en la pestaña Shell y cambie la configuración Cuando el shell salga a Cerrar la ventana

SirealmentedeseasalirdelaaplicacióndeTerminal,puedereemplazarexitporunallamadaaunscriptBash.Porejemplo:

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

(Fuente adaptada de Sugerencias de Mac OS X )

Esto todavía hará que la Terminal muestre una ventana emergente preguntando si desea cerrar la aplicación.

    
respondido por el ƘɌỈSƬƠƑ 13.01.2014 - 22:53

Lea otras preguntas en las etiquetas