web-dev-qa-db-fra.com

Comment garder la session de terminal active après avoir exécuté un script .sh

J'ai un script très simple run.sh qui ressemble à ceci:

#!/bin/sh
echo "Hello, let's start!"
cd /Users/c/Dev/App/Code/
. venv/bin/activate
cd Backend
export FLASK_APP=app.py
export FLASK_DEBUG=1
export CONFIG=Local
flask run

Après l'avoir lancé, j'obtiens ce qui suit:

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

Au lieu de cela, j'aimerais obtenir la session active de la même manière que si je tapais le script manuellement, donc simplement virtualenv actif où je peux ensuite exécuter pip install et voir la sortie de Flask.

Comment puis je faire ça?

3
Costantin

Si vous voulez une session active après le script, ne l'exécutez pas, sourcez-le:

$ source ./run.sh
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

$

Vous pouvez également démarrer une nouvelle session bash/sh dans votre script et y ajouter les variables d'environnement. Mais ça complique les choses ...

3
Simon Sudler