Voglio creare ed eseguire una funzione bash che:
cd
nella directory di un progetto- Apri una nuova scheda in Terminale nella stessa directory
- Apri i miei strumenti di sviluppo e avvia i servizi di sviluppo
L'articolo 2 non funziona come previsto, la nuova scheda non cambia directory.
Ecco lo script (entrambe le funzioni che risiedono nel mio 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
}
Che cosa sto facendo di sbagliato? Cosa sta facendo questo codice che non conosco?
Aggiornare
Il percorso per la directory a cui sto tentando di accedere contiene degli spazi. Ma fuggire dallo spazio non aiuta affatto. Lo script funziona con percorsi che non includono spazi.