¿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.

  • cambia a .bash_profile, lo que hace que el shell del terminal no se cargue, pero siga bucleando con la configuration de PATH
  • ¿Cuáles son las diferencias entre las secuencias de commands guardadas como * .scpt y * .applescript?
  • ¿Cómo puedo definir la variable CLASSPATH?
  • AppleScript: si la selección está vacía, select todo
  • Instalar John the Ripper Jumbo
  • AppleScript: obtenga la ruta a una aplicación sin abrirla
  • 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.

  • ¿Puedo hacer una copy de security de una sola carpeta en la máquina del time?
  • ¿Hay una mejor manera de search en los menus?
  • ¿Cuál es una buena manera de archivar películas de iTunes?
  • Los files PDF se ven diferentes en Yosemite Preview.app
  • Optimizando el sistema para el software instalado
  • La configuration "Abrir al iniciar session" se ignora
  • 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).