Scripting Bash e script eseguibili

Oct 23 2020

Sto cercando di eseguire django combinato con Jupyter in un ambiente virtuale. Il codice seguente porta a termine il lavoro:

source home/sujith/dev/django/bin/activate  && python home/sujith/dev/django/src/manage.py shell_plus --notebook

Ho salvato lo script come django.shnella mia directory home. Se eseguo ./django.shil notebook si apre.

Ho provato a salvarlo /bin, ma non sono riuscito a eseguirlo. Voglio digitare djangoinvece che ./django.shnel mio terminale e far eseguire lo script sopra.

Come posso raggiungere questo obiettivo?

Risposte

2 BeastOfCaerbannog Oct 29 2020 at 22:39

Come ha detto ponsfrilus , devi usare percorsi assoluti (percorsi che iniziano con /) affinché i tuoi comandi funzionino da /bino /usr/local/bin. Quindi il tuo script dovrebbe diventare:

source /home/sujith/dev/django/bin/activate && python /home/sujith/dev/django/src/manage.py shell_plus --notebook

Per eseguirlo come django, è necessario salvare lo script in un file denominato djangocon all'inizio #/bin/bashdel file. Quindi rendilo eseguibile eseguendo:

chmod u+x /path/to/django

dov'è /path/to/djangoil percorso assoluto del tuo script.

Infine, sposta lo script in /bineseguendo:

sudo mv /path/to/django /bin

Ora dovresti essere in grado di eseguire lo script semplicemente digitando djangonel tuo terminale.


Un'altra opzione, molto più semplice, è creare un alias per il tuo script, aggiungendo quanto segue alla fine del tuo .bashrcfile:

alias django='source /home/sujith/dev/django/bin/activate && python /home/sujith/dev/django/src/manage.py shell_plus --notebook'

Quindi chiudi il terminale e riaprilo o esegui quanto segue affinché l'alias abbia effetto:

source .bashrc