J'essaie d'exécuter un ensemble de commandes via ssh à partir d'un script Python. Je suis venu sur le concept here-document
et pensé: cool, laissez-moi mettre en œuvre quelque chose comme ceci:ssh + syntaxe ici-document avec Python
command = (('ssh [email protected] /usr/bin/bash <<EOF\n'
+ 'cd %s \n'
+ 'qsub %s\n'
+ 'EOF') % (test_dir, jobfile))
try:
p = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
except :
print ('from subprocess.Popen(%s)' % command.split())
raise Exception
#endtry
Malheureusement, voici ce que je reçois:
bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
Je ne sais pas comment je peux coder que final déclaration de fichier (je devine les caractères newline obtenir de la manière ici?)
Je l'ai fait une recherche sur le site, mais il semble y avoir aucun exemple Python de ce genre ...
N'êtes-vous pas un manque '\ n' juste après' << EOF'? – rodrigo
J'ai changé le code (comme indiqué dans l'OP) mais cela ne fonctionne toujours pas (même erreur) – user2186862