¿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

  • Devuelve el terminal no encontrado para la mayoría de los commands Mac OSX
  • Pestañas de la aplicación de terminal, cómo colocar al lado de la pestaña actual en lugar de al final
  • Cómo mover tabs en la terminal
  • ¿Cómo replace una carpeta cuyo nombre es una date, es decir, YYYYMMDD con una jerarquía de carpetas de año, mes y date?
  • Error "Error al ejecutar" al intentar instalar GCC
  • Comando de terminal para salir de "Copia de security y synchronization" de Google?
  • Permitir el comando de búsqueda para acceder a mis archivos
  • Establezca bash_profile para abrir con Sublime Text 2 de manera pnetworkingeterminada
  • El prompt del terminal no se muestra en macOS Sierra
  • mvim (MacVim 7.4) abriendo nuevas windows en lugar de tabs (Mac OS X 10.8.5)
  • Abrir nueva pestaña Terminal en el directory de trabajo actual no funciona
  • Saliendo / Iniciando la Terminal (El Capitán)
  • Cómo arreglar "No tiene permiso para usar" Aplicación ""
  • Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).