リンク

リンク

ユーザー指定のページャーを実行するアプリケーションを作成しています。これを行う標準的な方法は、 PAGER環境変数を確認することのようです。

これはプログラム名なのか、引数を伴ったプログラム名なのかは不明です。これについて言及している標準を見つけようとしましたが、見つかりません。

私の直感では、スペースで区切って実行すべきだと思います。正しいでしょうか? や などの環境変数が環境変数のないプログラム名であると想定するさまざまなプログラムに遭遇しまし$PAGER$EDITOR

sh代わりにで実行したほうがいいでしょうか?

リンク

答え1

私の直感では、スペースを分割して実行する必要があると思います。

良い直感だ。君が呼んでいる実行者(3); サポートする環境変数をどのように解釈するかはあなた次第です。オプションをサポートすることで、ユーザーはそれらを単一の $PAGER 名にまとめるスクリプトを書く手間が省けます。

良い例としては(1)私のシステムではMANPAGERをサポートしています。

MANPAGERが設定されている場合、その値はマニュアルページを表示するために使用するプログラムの名前として使用されます。設定されていない場合は、PAGERが使用されます。これにも値がない場合、/usr/bin/less -is使用されている。

少なくとも、PAGER にオプションを含めることができることを意味します。自分で実験してみてはいかがでしょうか。きっとそうだと思います。

Posix では、ユーティリティを示す環境変数がどのように解釈されるかという問題には対処していないと思います。最良の方法は、先行技術の一般的な例だと思います。

それを「シェル」に渡すかどうかについては、シェル変数の拡張を利用してそれを文書化したいのでなければ、いいえと言うでしょう。シェルを介さない方が簡単で予測しやすいです。

関連情報