与えられたコマンドが存在するかどうかを確認したいのですが、bash
ユーザーが作成したスクリプトではなく、bashのデフォルトコマンドにのみ興味があります。ここで言及することは、native commands
通常、ユーザーが使用できるすべてのコマンドを意味します。
2つのコマンドがあります
command -v
type
コマンドが存在することを確認するために使用できます。しかし、ユーザーが作成したスクリプトに対してもtrueを返しますが、私は組み込みコマンドに制限したいと思います。
メモ:bash builtin
私はaと他のコマンドを区別したくありません。
ティータッチ
タイプとして与えられますが、file
これは基本的にユーザーが使用できるコマンドです。しかし、ユーザーがスクリプトを作成して実行しようとしたら、フィルタリングしたいと思います。
助けてくれてありがとう。
答え1
シェル組み込みコマンドに対してのみtrueが返されるかどうかはわかりませんが、type -t
「組み込み」を含む「コマンド」タイプが返されます。
if [ "$(type -t help)" = "builtin" ]; then
echo "Help is a builtin command."
fi
詳細については、実行してくださいhelp type
。