Scripting Bash et script exécutable

Oct 23 2020

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

2 BeastOfCaerbannog Oct 29 2020 at 22:39

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

/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