¿Cómo abrir una nueva pestaña Terminal en el directory de trabajo actual?

Quiero crear y ejecutar una function bash que:

  1. cd en el directory de un proyecto
  2. Abra una nueva pestaña en Terminal en el mismo directory
  3. Abra mis herramientas de desarrollo e inicie los services de desarrollo

El ítem n. ° 2 no funciona como se esperaba, la nueva pestaña no cambia el directory.

  • AppleScript para marcar el file de video como progtwig de televisión?
  • Lanzar diferentes aplicaciones basadas en el nombre del file (que no sea la extensión)?
  • Eliminar el nombre de la computadora de la terminal
  • AppleScript para crear un formatting de espacio como "SPACIN G"?
  • Agregar contenido del correo a Excel usando Applescript
  • ¿Hay alguna manera de enumerar todos los commands disponibles en la terminal?
  • Aquí está el script (ambas funciones residen en mi file .bashrc :

     # Open a new tab (needs a path as an argument) new_terminal_tab(){ osascript -e "tell application \"Terminal\"" \ -e "tell application \"System Events\" to keystroke \"t\" using {command down}" \ -e "do script \"cd $1; clear;\" in front window" \ -e "end tell" > /dev/null } # Set up workspace affiliatesForm(){ # cd into the project's directory cd /Users/iamuser/Documents/path/to/project\ file # Get the working directory pwd=`pwd` # Open a new tab in Terminal and cd into project's directory # The idea is to have a tab with Rails server output, and another tab in the project's directory new_terminal_tab $pwd # Open the project in Sublime Text 2 subl $pwd # Start the Rails server rails server } 

    ¿Qué estoy haciendo mal? ¿Qué está haciendo este código que no sé?


    Actualizar

    La ruta del directory al que bash acceder tiene espacios. Pero escaping del espacio no ayuda en absoluto. La secuencia de commands funciona con routes que no incluyen espacios.

  • ¿Es posible hacer una installation "limpia" de Lion?
  • ¿Mi Air tiene malware si las windows aparecen cuando hago clic en algún enlace?
  • ¿Cómo restablecer la configuration de la aplicación de Mensajes en Mountain Lion?
  • Teclas y mouse dejan de funcionar aleatoriamente brevemente
  • ¿Cómo fuerzo la Papelera a vaciar en El Captan?
  • Notificaciones de escritorio para llamadas telefónicas en iOS 7
  • 5 Solutions collect form web for “¿Cómo abrir una nueva pestaña Terminal en el directory de trabajo actual?”

    La apertura de una nueva pestaña en el Terminal debería conservar el directory actual de forma pnetworkingeterminada. Si no lo hace, puede haber roto $PROMPT_COMMAND .

    Recuerde también que no debe replace el valor anterior si tiene la intención de agregar un comportamiento personalizado al agregar ; $PROMPT_COMMAND ; $PROMPT_COMMAND al final.

     PROMPT_COMMAND="my_custom_function; $PROMPT_COMMAND" 

    Como reference, aquí está el valor pnetworkingeterminado de /etc/bashrc (OS X 10.9):

     # Tell the terminal about the working directory at each prompt. if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then update_terminal_cwd() { # Identify the directory using a "file:" scheme URL, # including the host name to disambiguate local vs. # remote connections. Percent-escape spaces. local SEARCH=' ' local REPLACE='%20' local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}" printf '\e]7;%s\a' "$PWD_URL" } PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND" fi 

    Sé que esta pregunta está un poco anticuada, pero acabo de encontrar una respuesta que sería útil para los usuarios de iTerm2 en Mac OS X.

    En la "pestaña de perfil" de las preferences de iTerm2 puede establecer exactamente dónde iterm abre nuevas tabs en el encabezado "Directorio de trabajo"

    preferencias de iterm

    Después de eso, cierra y reinicia iTerm y ¡deberías estar listo!

    Entonces, como se mencionó, mi script funcionaba con routes que no incluían espacios. Resulta que las soluciones se encuentran envolviendo la variable (dentro de new_terminal_tab() ) en comillas simples como esta:

    -e "do script \"cd '$1'; clear;\" in front window" \

    Increíble lo que las citas pueden hacer ¿no?

    El service proporcionado aquí funciona para mí. Abre una nueva pestaña Terminal en la carpeta desde la que ejecuté el service.

    Encontré el problema de que cuando ya tenía abierta una window de Terminal, se abriría una nueva. Lo resolví de la siguiente manera:

     on run {input, parameters} repeat with this_item in input set the_path to POSIX path of this_item repeat until the_path ends with "/" set the_path to text 1 thru -2 of the_path end repeat set numberOfWindows to "0" tell application "Terminal" activate set numberOfWindows to (numberOfWindows + (count windows)) if numberOfWindows is 0 then do script with command "cd " & quoted form of the_path activate else activate delay (0.3) tell application "System Events" keystroke "t" using command down end tell do script with command "cd " & quoted form of the_path in window 0 end if end tell end repeat return input end run 

    Todo el crédito por este código es para Jeroen Leenarts . Acabo de hacer algunos pequeños ajustes.

    Uso una aplicación llamada go2shell. Esto le da un pequeño button en Finder que abre el directory actual en una terminal.

    https://itunes.apple.com/es/app/go2shell/id445770608?mt=12

    También puede usar la terminal para copyr a la carpeta que desee y usar 'abrir'.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).