Je veux intégrer un petit script python dans un script bash afin que je puisse envoyer un objet json à un socket. J'ai essayé le code suivant:Python intégré dans bash ne fonctionne pas
python -c "$(cat << 'EOF'
import socket
import json
data = {'ip':192.168.1.150', 'status':'up'}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 13373))
s.send(json.dumps(data))
result = json.loads(s.recv(1024))
print result
s.close()
EOF
)"
et ceci: python " socket importation importation de JSON
data = {'ip':192.168.1.150', 'status':'up'}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 13373))
s.send(json.dumps(data))
result = json.loads(s.recv(1024))
print result
s.close()
"
Mais je continue à obtenir l'erreur suivante:
data = {'ip':192.168.1.150', 'status':'up'}
^
SyntaxError: invalid syntax
Je suppose que c'est parce que bash interprète cela, pas python.J'ai testé le code dans un script python, un ça marche. De plus, ai-je besoin de l'option -c? Excusez-moi, je suis complètement inexpérimenté en python, j'ai écrit des scripts bash très complets pour le projet sur lequel je travaille et j'ai besoin d'envoyer la sortie de ceux-ci aux sockets en tant qu'objets json. Un tel petit code Python embarqué semble de loin la réponse la plus simple, à moins que quelqu'un n'ait d'autres suggestions.
Python version installée sur CentOS Python 2.6.6
grâce @John. Coder à 3h du matin et paniquer ma solution n'allait pas fonctionner. Appréciez votre temps et j'aurais dû le remarquer. – jewfro