¿Cómo puedo escribir un script bash en Mac OS X que abra una ventana de Terminal en un directorio específico? Asumiría algo como:
open /Applications/Utilities/Terminal.app
Pero eso no hace nada (tal vez esté cargando la aplicación Terminal que ya está abierta en lugar de abrir una nueva ventana de Terminal). Y, por supuesto, no cd en un directorio ya que no lo he especificado...
Aquí hay un pequeño script que eliminé:
#!/usr/bin/osascript
on run argv
set dir to quoted form of (first item of argv)
tell app "Terminal" to do script "cd " & dir
end run
Si guardas esto y lo haces ejecutable
chmod +x script_filename
y luego ejecutarlo
script_filename ~/Desktop
luego abrirá una nueva ventana de terminal y cambiará al directorio en el argumento.
A partir de Mac OS X Lion 10.7, si abre una carpeta con Terminal, se creará una nueva terminal en esa ubicación. por ejemplo, puede arrastrar una carpeta al ícono de la aplicación Terminal, o a una barra de pestañas para crear una nueva pestaña, y hay Servicios (Nueva Terminal en Carpeta) que puede usar desde el menú contextual para abrir una nueva ventana o pestaña para un carpeta seleccionada en Finder u otras aplicaciones (o incluso un nombre de ruta seleccionado en el texto).
Para hacer el equivalente desde la línea de comandos (o un script de shell):
open -a Terminal /path/to/folder
Este es el equivalente en la línea de comandos de arrastrar la carpeta al ícono de la aplicación Terminal. (También puede proporcionar una ruta completa para Terminal si desea especificar una copia/versión particular de la aplicación).
No estoy seguro si lo siguiente funciona desde un script bash, pero al menos descubrí cómo abrir pestañas específicas en directorios específicos:
En las Preferencias, en Configuración, copia el perfil que normalmente le gustaría usar. En Shell, puede indicarle "Ejecutar comando": cd /some/directory
. También querrá marcar "Ejecutar dentro del shell". Opcionalmente, puede especificar un título en Ventana.
Agregue más perfiles de esta manera.
Luego cierre todas las ventanas de la terminal, luego abra un perfil en una nueva ventana, más otro perfil en una nueva pestaña, más otro perfil en una nueva pestaña. Ahora tienes una ventana con tres pestañas. Guarde esto como un grupo de ventanas.
De ahora en adelante, siempre que tenga Terminal en ejecución, puede abrir este grupo de ventanas y obtendrá una nueva ventana con estas pestañas en estos directorios.
Pregunta abierta: ¿cómo le digo a Terminal que abra un nuevo grupo de ventanas, desde un script bash?
en01