コマンドがエイリアス、関数、またはバイナリであるかどうかをテストする方法は?

コマンドがエイリアス、関数、またはバイナリであるかどうかをテストする方法は?

command がありますがfoo、それがバイナリなのか、関数なのか、エイリアスなのか、どうすればわかりますか?

ベストアンサー1

Bash(または他のBourne様シェル)を使用している場合type

type command

commandシェルが組み込みであるか、エイリアスが何であるか(そうであればエイリアスが何であるか)、関数(そうであれば関数の本文がリストされています)であるか、それともファイルに保存されているか(そうであればそのファイルへのパス)を伝えます。ファイル)。

関数のエイリアスなど、入れ子になった状況がある可能性があります。その場合、実際の型を見つけるには、まずその型のエイリアスを解放する必要があります。

unalias command; type command

「バイナリ」ファイルの詳細については、次の手順を実行してください。

file "$(type -P command)" 2>/dev/null

commandエイリアス、関数、またはシェル組み込みの場合は何も返されませんが、スクリプトまたはコンパイルされたバイナリの場合はより多くの情報が返されます。

引用する

おすすめ記事