groffでファイルが存在する場合にのみファイルを「.so」する方法はありますか? 「.soファイル」を実行し、ファイルが存在しない場合はエラーメッセージなしで実行を続けるか、最初に確認するために.ifに何かを入れることができます。 (すべてのエラーメッセージを抑制するコマンドラインオプションがある場合はお勧めできません。そうすると、実際のエラーを修正できなくなります。)
groffで直接実行できない場合は、ファイルが存在することを確認し、.soコマンドを実行するかどうかを確認するクローズドシェルスクリプトを作成しますが、inside-groffメソッドがある場合は簡単です。
答え1
一つある安全ではないこの問題に対する解決策は、シェルコマンドの実行をroff
要求することです。.pso
.pso if [ -f file ]; then cat file; fi
この機能が機能するには、groff
以下を実行する必要があります。それ以外の場合は、診断メッセージが表示されます。-U
.pso request not allowed in safer mode
私が知る限り、ファイルが存在するかどうかを検出する組み込みテストはありません。
答え2
私はgroff 1.23.0があなたのユースケース要件を満たす新しい機能を持っていると信じていますsoquiet
。ファイルシステムオブジェクトのテストを公開しませんが、ファイルが見つからない場合は、ノイズなしでファイルをインポートしようとします。その後、ファイルに特定のレジスタ、マクロ、または文字列の定義があることを確認して、成功した取得をテストできます。
以下は、最新のgroff 1.23.0リリース候補を発表したものです。
https://lists.gnu.org/archive/html/groff/2023-02/msg00090.html