Bashスクリプトを実行して結果のコマンドを確認する一般的な方法はありますが、実際にはコマンドを実行しません-つまり、「ドライラン」/ソートのシミュレーターですか?
実行したいデータベースインストールスクリプト(実際には./configureとmakeを実行した後に "make install")を実行していますが、それは不要なあらゆる種類のものをインストールしています。
したがって、実際に実行する前に、それが何をするかを正確に確認する方法が必要です。代わりにコマンドを手動で実行することもできます。
そのようなタスク(または関連/類似の何か)を実行できるユーティリティはありますか?
GNU makeにはオプションがあります 予行演習:
「-n」
「--just-print」
「--dry-run」
「--recon」
「ノーオペレーション」。 makeは、ターゲットを最新にするために必要なレシピを印刷しますが、実際には実行しません。このフラグを使用しても、一部のレシピは実行されることに注意してください(MAKE変数の仕組みを参照)。また、含まれているメイクファイルを更新するために必要なレシピも実行されます。
したがって、状況に応じて、make -n install
は、make
が実行するコマンドを表示します。
make
のどのバージョンにも-n
オプションがあります( POSIXのmake
の説明を参照)。 Shellには対応するオプションがありません(たとえば、コマンドを実行せずにコマンドを表示する)。
状況を悪化させるために、automakeを使用すると、大量のボイラープレートスクリプト(開発者は「再帰的ルール」と呼ばれます)を貼り付けて、誰でも「make -n」を使用する機能を無効にし、何が行われるかを確認します。起こります。
参考文献:
make -n
は、実際に実行しなくても、何が実行されるかを示すのに役立ちます。ただし、これは‘+’
で始まるコマンドを実行し、GNU makeを使用する場合、文字列‘$(MAKE)’
または‘${MAKE}’
を含むコマンドを実行します( の代わりに/-を参照)。 = GNU Make Manual)で。通常、これは再帰ルールが何をするかを示すのに役立ちますが、独自のルールでは、recursionは、ファイルを変更するアクションを使用します。さらに、GNU makeは、-nを指定してもMakefileファイル自体の前提条件を更新します( Makefiles の再作成を参照)。 GNU Make Manual)。
Re:automakeで生成されたルールの `make -n 'に関するその他の問題。
にリストされているいくつかの落とし穴に触れます27.9多くの出力を生成する処理ツール