Bashパイプはより多くの出力を提供します。

Bashパイプはより多くの出力を提供します。

ここではいくつかのbashの設定が気になります。 bashのstdoutを/bin/moreのパイプに設定できますか? viをコマンドエディタとして使用するのと同じように、Ctrl-PgUpまたはCtrl-PgDownを使用してすべての出力を表示することはできません(デフォルトでは)。

より具体的に:私はいいえパイプを通して出力したいです。一つコマンドは次のとおりです。

$> ls | more
a b c
...
--more--

しかし:パイプどの現在のセッションへの出力がさらにあるので、通常どおりプロンプトの下にすべての出力印刷をインポートするか、出力が多すぎる場合は画面をタップします。

# automatically piped to more:
$> ls 
a b c
...
--more--

これを行うための組み込みbashはありますか?

編集:十分に具体的ではありませんでした。申し訳ありません。 「スクリプト」とコマンドのグループ化について知っています。

(cmdA; cmdB) | less

私が本当に望むのは、一度に100ページの出力を自動的に回避し、代わりにbashのstdoutと同様の動作を持つことです。これは追加することで行うことができます。

 2>&1 | more

コマンドプロンプトで入力されたすべてのコマンドに対して - 自動的に実行されます。

ベストアンサー1

あなたの質問は、あなたが達成しようとしている目標について十分に具体的ではありません。私はいくつかの推測をします:

セッションで何が起こったのかを追跡したい場合に使用しますscript。詳細についてはを参照してくださいman script

複数のコマンドの出力をブロックに結合するには、less次のように中括弧を使用するようにパイプします。

(date; echo; cat /etc/hosts; echo; cat /etc/resolv.conf; echo; host bla.bla) | less

シェルへの入力中にmoreを同時に使用すると、シェルとlessキーボードの両方で読むことが期待されるため、機能しませんstdin。これがターミナルプログラムにページの上下と検索機能がある理由です。

おすすめ記事