Appel d'un script Python à partir de bash avec l'argument
Je sais que je peux exécuter un script python à partir de mon script bash en utilisant les éléments suivants:
python python_script.py
Mais que si je voulais passer une variable /argument à mon script python à partir de mon script bash. Comment puis-je le faire?
Fondamentalement bash allons travailler sur un nom de fichier, puis python de les télécharger, mais j'ai besoin d'envoyer le nom de fichier bash, python quand je l'appelle.
- lors de l'exécution
python python_script.py
dans votre shell par défaut dans Debian vous utilisez bash déjà... donc il suffit de faire dans votre script bash:python python_script.py arg1 arg2 ...
- Dépourvu Question que je pense, il est très facile de Lien:tutorialspoint.com/python/python_command_line_arguments.htm
Vous devez vous connecter pour publier un commentaire.
Pour exécuter un script python dans un script bash, vous devez appeler la commande de même que vous le feriez dans un terminal. Par exemple
Pour accéder à ces variables dans python, vous aurez besoin
Utilisation
et dans votre script Python
À côté de
sys.argv
, jetez aussi un oeil à la argparse module, qui permet de définir les options et les arguments pour les scripts.De l'option intégrée:
Envelopper code python dans un bash fonction.
Utiliser des variables d'environnement, de transmettre les données dans votre système embarqué script python.
http://bhfsteve.blogspot.se/2014/07/embedding-python-in-bash-scripts.html
J'ai un script bash qui appelle un petit python routine pour afficher une fenêtre de message. Comme j'ai besoin d'utiliser la commande killall pour arrêter le script python, je ne peux pas utiliser la méthode ci-dessus comme il voudrait alors dire l'exécution de la commande killall python qui pourrait prendre d'autres programmes python donc j'utilise
pythonprog.py "$argument"
& # Le & retourne le contrôle directement le script bash qui doit donc être à l'extérieur de la backticks. L'aperçu de ce message est de montrer sans "`" de chaque côté de la commande pour quelque raison.Aussi longtemps que le python script sera exécuté à partir de la cli par nom, plutôt que de python pythonprog.py cela fonctionne dans le script. Si vous avez besoin de plus d'un argument, il suffit d'utiliser un espace entre chacune d'elles dans les citations.
utiliser dans le script:
ou
Le script sera exécuté sans sortie.
et de prendre un coup d'oeil à la getopt module.
Il fonctionne très bien pour moi!