少し時間がかかるツールを実行するMakefileがあります。使用したコマンドを置き換えることができます:
make TOOL=alternative-tool
Makefileでそのステップをスキップしたいので、ステータス0で終了し、副作用が無視できるコマンドを探しています。
明らかに、私はtrue
を使用することができます 、しかしそれはちょっと紛らわしいです:
make TOOL=true
それは私が欲しいかのように読みます ツールを実行しますが、実行しません。
/bin/true
ではないデフォルトでインストールされた実行可能ファイルはありますか ステータス0で終了し、キャッチーで入力しやすい名前が付いていますか?
承認された回答:
「/bin/true
ではないものを要求したとしても 「、true
を置き換えます フルネーム/bin/true
それがtrue
であることを示すため 「真」という他の意味ではなく、プログラムがおそらく最善の解決策です。
あなたの懸念は、true
make TOOL=true
コマンド名以外のようです。しかし、あなたが書くなら
make TOOL=/bin/true
それならそれは明白にコマンドです。誰かがTOOL=true
を読み間違える可能性があります つまり、どこか他のツールが意図されているが、TOOL=/bin/true
のそのような誤読はないということです。 可能性が高いです。
:
がいつになるかわかりません シェルビルトインですが、外部コマンドではありませんが、機能します。 Henning Makholmは、それが機能しているように見えると報告しました。しかし、すべての状況で機能するとは限らないと思います。あなたはそれがあなたのために機能しなかったことに気づきました。
シェルエイリアスに関しては、コマンドに渡す引数でエイリアス展開が実行されないため、これを使用することはできません。また、makefilesは以前に定義されたシェルエイリアスを使用しません。 make
であっても 新しいシェルでコマンドを実行すると、そのシェルにはエイリアスがありません(エイリアス拡張が自動的に有効にならない非対話型シェルになるため、エイリアスがあったとしても使用されません)。