2016-08-08 3 views
0

Je veux créer un script shell pour démarrer mon projet env. J'utilise ITerm2 avec zsh et oh-my-zsh installé.Ouvrir un nouvel onglet dans ITerm2 et y exécuter des commandes avec le script zsh

Je veux:

  1. Ouvrir le répertoire
  2. Activer python virtualenv
  3. Exécuter django gérer commande
  4. Passer au nouvel onglet
  5. changer le répertoire
  6. commande Exécuter engouffreur regarder pour les changements de frontend

Tout ce que je suis arrivé est ceci:

#!/bin/zsh 
cd ~/Projects/python/project_name 
source ~/virtualenvs/project_name/bin/activate 
python ./backend/manage.py runserver 
tab 
cd front 
gulp watch 

Et comme vous pouvez vous attendre cela ne fonctionne pas. Peux-tu me montrer où je devrais regarder ou est-ce que c'est même possible avec un script shell?

Répondre

1

Complètement possible.

J'ai fait à peu près la même chose que vous essayez (bien que ce soit un projet Rails) en utilisant un paquetage NPM appelé ttab.

  1. Install NPM.
  2. Install TTab.
  3. Vous pouvez exécuter les commandes dans le nouvel onglet comme ceci:
# First switch to directory 
cd front 
# Open new tab in that directory and execute 
ttab -G eval "gulp watch" 

Note: Vous pouvez exécuter plusieurs commandes en cas de besoin, comme gulp watch; rails s.

  1. Si vous avez besoin d'exécuter une commande sur l'onglet d'origine qui est aussi sur un autre répertoire, vous pouvez créer une procédure/fonction dans votre fichier script pour le faire:
# Define the function before it is called 
gotofolder() 
{ 
    cd ~/mydirectory 
} 

# start the other tabs (...) 

# change the original tab directory 
gotofolder 
# Run Rails or whatever 
./bin/rails s 

Si vous voulez jeter un oeil à la façon dont je l'ai fait, s'il vous plaît checkout le script confereai.sh dans my MDFR repo.

+0

Salut! J'ai trouvé ce paquet aussi, mais je ne savais pas sur les fonctions. Merci –