PAGER、EDITOR、VISUALが空なのはなぜですか?

PAGER、EDITOR、VISUALが空なのはなぜですか?

これらの環境変数を使用しようとすると、空の文字列が表示されます。

$ $PAGER some_file;
bash: some_file: command not found
$

私はいくつかをテストしました。

$ echo $PAGER;

$ man man;     ## Here it's using less(1)
$ export PAGER;
$ man man;     ## Still using less(1)
$ PAGER='';
$ echo $PAGER;

$ man man;     ## Here it uses cat(1)
$ export PAGER;
$ man man;     ## Here it uses cat(1), too
$ unset PAGER;
$ man man;     ## Here it uses less(1) again

なぜ?この変数をどのように使用できますか?

env |grep PAGER何も表示されません。

私のシステムはDebian 11(テスト)です。


編集する:

私の意図は、ページャに依存するスクリプトを書くことです。

使用したいが、lessそこにいることを保証することはできませんので、使用したいと思います$PAGER

これらの変数は、私が依存できるように常に存在しなければならないわけではありませんか?

ベストアンサー1

manいいえ頼る存在するPAGER。 Debian で出力を表示するツールは次のとおりです。次のように決定:

  • (または)オプションを設定すると、-Pこのオプションが使用されます。--pager
  • MANPAGER環境変数が設定されると、その変数が使用されます。
  • PAGER環境変数が設定されると、その変数が使用されます。
  • pagerパスに存在し、実行可能な場合はそれを使用してください。
  • そうでない場合(またはページャがnull値で上書きされた場合)cat

pagerDebianのデフォルト値less(参考資料を参照readlink -f /usr/bin/pager)。catNULLではないが実行できない値でポケットベルを上書きすると、オーバーライドは適用されず、man -P non-existentエラーで失敗します。

などの独自の値を設定するには、PAGERBash(Debianのデフォルトのユーザーシェル)用のシェル起動ファイルに追加するだけです~/.bashrc

言及した環境変数(PAGER、、、 )はプロセス環境に存在EDITORするVISUAL必要はなく、存在すると期待することもできません。ユーザーが自分の設定を指定できるようにするのに便利ですが、常にデフォルトが必要です。一部のディストリビューションでは、ユニークな汎用コマンドを提供して助けを求めています。sensible-editorsensible-pagerDebian で。バラよりPOSIX環境変数はシェルに対して定義されていますか?それとも、必ずしもシェルを実行する必要がないプロセスに対して定義されていますか?これに関するさらなる議論。

おすすめ記事