Rpmのマニュアルページから:
--pipe CMD
Pipes the output of rpm to the command CMD.
なぜこれが追加されたのですか?シェル自体を介して配管する代わりに、なぜそれを使用するのですか?
このオプションは、rpm
がシェルから呼び出された場合には役に立ちません。
しかし、他のプログラムから呼び出された場合、それらの引数が何らかの形式のユーザー入力から構築されている場合、非静的引数をrpm
に渡すのが簡単になります(呼び出し側プログラムがシェルを強制的に呼び出さない言語で記述されている場合)とにかく他のプログラムを実行するには):
rpm
とCMD
を別々に呼び出して待機する必要があります。sh -c ´rpm Argument1 Argument2 ...´ | CMD
のようなシェルを使用する場合、引数にスペースやシェルのメタ文字が含まれている可能性がある場合に、引数が単語に分割されたり、シェルによって解釈されたりしないように、引数を引用符で囲む追加レベルが必要です。rpm
への引数が呼び出し側プログラムへのユーザー入力である場合、それはTom and Alice´s dog
である可能性があり、プログラマーは引数を作成するときにそれをTom\ and\ Alice\´s\ dog
に変換する必要があります。シェルのリスト。 (そして、CMD
への引数はすべて同じ方法で引用する必要があります。)--pipe
オプションを使用する場合、呼び出し側プログラムはこれらのいずれも必要としません。CMD
は単一であるため、CMDはrpm
から呼び出されるシェルによって解釈されるため、CMD
への引数はすべて引用符で囲む必要があります。単一の引数からrpm
への単語。)