Я создаю инструмент командной строки на Ruby. На экране будет напечатано много текста. В настоящее время я использую для этого конвейер оболочки ( may_app | more
). Но я думаю, что лучше иметь пейджер по умолчанию.
Это похоже на то, что вы видите при выполнении git log
. Пейджер можно отключить, используя git --nopager log
.
Я проделал довольно много работы в Google и нашел одну жемчужину: hirb , но это кажется немного излишним.
После многих попыток я использую для этого оболочку оболочки:
#!/bin/bash
# xray.rb is the core script
# doing the main logic and will
# output many rows of text on
# screen
XRAY=$HOME/fdev-xray/xray.rb
if [ "--nopager" == "$1" ]; then
shift
$XRAY $*
else
$XRAY $* | more
fi
Это работает. Но есть ли способ лучше?