2010-01-22 4 views
3

Quand je ri ... execute dans un terminal sur mon Mac, je reçois, peut-être, 50 lignes vides, la sortie, je me attends, puis une dernière ligne:Pourquoi le ri de Ruby ne retourne-t-il pas à une invite de commande bash?

(FIN)

, avec (END) affiché avec des lettres blanches sur fond noir. Je ne suis pas retourné à bash, cependant - ri fonctionne toujours, et je ne peux rien entrer. Aussi, pourquoi toutes les lignes vides?

Pourquoi cela se produit-il?

Répondre

5

La sortie est acheminée via un pager (la valeur de la variable d'environnement $PAGER, probablement /usr/bin/more ou /usr/bin/less). Cela vous permet de faire défiler des écrans de données en cliquant sur la barre d'espace (parmi d'autres fonctions intéressantes), au lieu de devoir faire défiler le terminal vers le haut ou vers le bas. Pour quitter, tapez q.

+0

Un grand merci . Et pourquoi toutes les lignes vides avant la viande? –

+0

Normalement, il n'y a pas autant de lignes vides * avant * la sortie, donc je ne peux pas expliquer cela - peut-être quelque chose dans la configuration shell ou pager. – mipadi

2

Poltergeist bipeur? Peut-être que vous trouveriez à contourner ce que votre pager par défaut est tout à fait une chose utile. Je fais souvent. Essayez de mettre ce code dans votre fichier ~/.bashrc et redémarrez votre session de terminal (vous pouvez bien sûr supprimer mon commentaire si vous n'avez pas mal à se souvenir des arguments de commande obscurs ou profiter de relisant les pages de manuel):

alias ri='/usr/local/bin/ri -T' # -T == --no-pager ... Send output directly to stdout, rather than to a pager. Pagers are damned annoying when the info you need disappears when you still need to see it ... 
Questions connexes