J'ai essayé de résoudre ce problème depuis un certain temps maintenant sans succès. La croûte de la situation est que j'utilise un script bash pour envoyer des paramètres aa script python:Comment passer des arguments variables du script bash au script python
Exemple:
foo.sh appelle bar.py .... l'appel ressemble à: bar. py $ var1 $ var2 ... $ varn
Le script python imprime alors tous les arguments à l'aide du tableau sys.argv. Le script python fonctionne correctement à partir de la ligne de commande, mais lorsqu'il est appelé avec le script bash (par exemple, foo.sh), je n'obtiens aucune sortie de bar.py.
De plus, j'ai démarré foo.sh avec l'option "#!/Bin/bash -x" et j'ai aussi regardé la sortie.
Résumons:
- Deux scripts, foo.sh et bar.py
- foo.sh appelle bar.py, en passant des variables de foo.sh comme arguments à bar.py
- bar .py imprime les arguments qu'il voit à l'aide sys.argv
- bar.py fonctionne lorsqu'il est exécuté à partir de son propre terminal, ne fonctionne pas lorsqu'il est appelé à partir foo.sh
Toute aide être génial !!!!
Merci!
Edit: Salut à tous, merci pour les réponses, le code complet est assez long ... mais ... le contenu des deux scripts peuvent être résumés
foo.sh _ __ _
#!/bin/bash
declare -a list1;
declare -a list2;
list1=("foo" "bar" "please");
list2=("foo" "bar" "please" "help");
declare -a joined;
joined=($(bar.py "${list1[@]}" "${list2[@]}"));
bar.py _ __ _
#!/bin/python
import sys
for arg in sys.argv:
print arg
Comme je suppose que tous les retraits dans le python sont corrects (pas sûr comment StackOverflow le fait encore :)). Ces deux représentent le noyau du problème que j'ai. Comme indiqué, bar.py affiche correctement les arguments, lorsqu'il n'est pas appelé depuis foo.sh.
PS: Je ne veux dire « croûte »
s'il vous plaît poster le script bash réelle, il serait beaucoup plus facile de voir que les erreurs – tobyodavies
Ensuite, vous faites quelque chose de très mal. Publiez un code minimal qui présente le problème. –
Le script python peut-il imprimer quelque chose lorsqu'il est appelé depuis le script bash? PAR EXEMPLE. Si vous ajoutez "print" wtf "' en haut de 'foo.py', voyez-vous cette sortie lorsque vous exécutez le script bash? – intuited