¿Puedo ejecutar un command de Terminal en una nueva pestaña?

Se me acaba de ocurrir que sería increíblemente útil si pudiera escribir un command en una pestaña de Terminal y luego ejecutarlo en una nueva pestaña de background o de primer plano. Por ejemplo, esto sería increíble al editar files con nano . Pude nano sys_201406271933.log en una location y luego rápidamente nano sys_201406271933.log , nano 415ab40ae9b7cc4e66d6769cb2c08106e8293b48.key dos nuevas tabs de background. La alternativa es abrir manualmente dos tabs y alternar entre ellas, usando el mouse para copyr y pegar los nombres de file largos e inmemorables.

Pasé unos 30 minutos investigando si esto es posible y no encontré una respuesta satisfactoria.

One Solution collect form web for “¿Puedo ejecutar un command de Terminal en una nueva pestaña?”

iTerm 2 es un potente sustituto de Terminal.app y tiene soporte para AppleScript. Puede usar AppleScript para indicarle que ejecute commands en una nueva pestaña o window.

Por ejemplo, hagamos una pequeña acción de AppleScript que sea invocable. Ingrese lo siguiente en el Editor de AppleScript:

 on run argv set AppleScript's text item delimiters to {" "} tell application "iTerm" make new terminal tell the current terminal activate current session launch session "Default Session" tell the last session write text argv as string end tell end tell end tell end run 

y luego guárdelo como un Script en ~/Documents/Scripts/run-in-new-iterm-tab.scpt . Ahora podemos llamarlo desde la línea de command de esta manera:

 /Users/ian > osascript ~/Documents/Scripts/run-in-new-iterm-tab.scpt ls ~/Documents/Scripts /Users/ian > 

y obtengo una nueva pestaña en mi session de iTerm con:

 Last login: Thu Aug 28 22:17:17 on ttys003 ls /Users/ian/Documents/Scripts /Users/ian > ls /Users/ian/Documents/Scripts edit keep_drives_alive.sh run-in-new-iterm-tab.scpt touch-in-order.pl find-missing-itunes-files.pl keep_drives_alive.sh~ start-utorrent.scpt touch-in-order.pl~ /Users/ian > 

Lo cual no está mal. Hay algunos refinamientos que puede hacer en AppleScript, como mantener el directory de trabajo actual cuando llama al command. Pero eso te lleva al estadio.

Si usa esta sugerencia en esta pregunta , puede convertir todo en una secuencia de commands envuelta en bash que sea aún más fácil de ejecutar:

 #!/usr/bin/env osascript on run argv set AppleScript's text item delimiters to {" "} tell application "iTerm" make new terminal tell the current terminal activate current session launch session "Default Session" tell the last session write text argv as string end tell end tell end tell end run 

Guárdalo en un punto de tu PATH y PATH ejecutable y luego solo debes ejecutar:

 run-in-new-iterm-tab ls ~/Documents/Scripts 

para hacer que funcione

  • Use solo la tecla de opción izquierda como tecla meta en Terminal.app
  • Comando de terminal para verificar puertos USB disponibles
  • ¿Cómo agregar un enlace a Sublime Text?
  • Cómo hacer que xargs no coma espacios dobles
  • El command ssh falla después del intercambio de keys
  • ¿Cómo imprimo mi UUID de grupo de volúmenes lógicos en un file?
  • Homebrew: ¿una forma fácil de agregar 'gnubin' a la ruta para múltiples packages?
  • "Mkdir: /Users/me/.bash_sessions: operación no permitida"
  • Producir / archivar una descripción general de una estructura de directory
  • ¿Alguna forma de eliminar todas las carpetas que contienen solo .DS_Store recursivamente?
  • Abra 'cromo' o safari en la terminal
  • Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).