Scripting Bash et script exécutable
J'essaye d'exécuter django combiné avec Jupyter dans un environnement virtuel. Le code suivant fait le travail:
source home/sujith/dev/django/bin/activate && python home/sujith/dev/django/src/manage.py shell_plus --notebook
J'ai enregistré le script django.shdans mon répertoire personnel. Si je lance ./django.shle cahier apparaît.
J'ai essayé de l'enregistrer /bin, mais je n'ai pas pu l'exécuter. Je veux taper djangoau lieu de ./django.shdans mon terminal et faire exécuter le script ci-dessus.
Comment puis-je atteindre cet objectif?
Réponses
Comme l'a dit ponsfrilus , vous devez utiliser des chemins absolus (chemins commençant par /) pour que vos commandes fonctionnent à partir de /binou /usr/local/bin. Votre script devrait donc devenir:
source /home/sujith/dev/django/bin/activate && python /home/sujith/dev/django/src/manage.py shell_plus --notebook
Pour l'exécuter en tant que django, vous devez enregistrer votre script dans un fichier nommé djangopar #/bin/bashen haut du fichier. Ensuite, rendez-le exécutable en exécutant:
chmod u+x /path/to/django
où /path/to/djangoest le chemin absolu de votre script.
Enfin, déplacez votre script vers /binen exécutant:
sudo mv /path/to/django /bin
Vous devriez maintenant pouvoir exécuter votre script simplement en tapant djangodans votre terminal.
Une autre option, beaucoup plus simple, consiste à créer un alias pour votre script, en ajoutant ce qui suit à la fin de votre .bashrcfichier:
alias django='source /home/sujith/dev/django/bin/activate && python /home/sujith/dev/django/src/manage.py shell_plus --notebook'
Fermez ensuite votre terminal et rouvrez-le ou exécutez la commande suivante pour que l'alias prenne effet:
source .bashrc