2016-11-08 1 views
0

Je suis en train d'exécuter des commandes dans une session SSH bloc heredoc en utilisant quelque chose comme ceci:Comment puis-je exécuter la commande SSH avec sortie pagination Heredoc

ssh -tt [email protected] << 'END' > ./file.txt 

    some command 

END 

La commande est exécutée et enregistrée une partie de la production à fichier.txt. Le problème est que l'invite du programme pour un ENTER ou espace pour continuer à montrer la sortie (la sortie entière ont des milliers de lignes)

Comment puis-je envoyer un ou plusieurs ENTRER après la première commande? J'ai essayé d'utiliser une certaine commande \ n \ n \ n mais ne fonctionne pas.

Répondre

1

Ajoutez simplement une ligne vide à l'entrée Heredoc.

Mais la commande peut effectivement lire à partir d'un terminal, et non une entrée standard. Alors cela ne marchera pas.

Vous êtes peut-vous la cause de ce trouble en forçant une allocation pseudo-terminal à l'aide du commutateur -t. Sans pseudo-terminal, les commandes ne paginent généralement pas (n'ayant pas de "terminal" à paginer contre) et ont tendance à utiliser une entrée standard pour la lecture.

Essayez retirer -t commutateur. Il ne devrait pas être utilisé pour l'automatisation de toute façon. C'est pour des sessions interactives.