Risposte:
Se sei su Bash (o un'altra shell simile a Bourne), puoi usare type
.
type command
ti dirà se command
è una shell integrata, alias (e in tal caso, aliasata rispetto a cosa), funzione (e in tal caso elencherà il corpo della funzione) o memorizzata in un file (e in tal caso, il percorso del file) .
Per ulteriori informazioni su un file "binario", puoi farlo
file "$(type -P command)" 2>/dev/null
Questo non restituirà nulla se command
è un alias, una funzione o una shell integrata ma restituisce ulteriori informazioni se si tratta di uno script o di un file binario compilato.
Riferimenti
In zsh è possibile controllare i aliases
, functions
e commands
gli array.
(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'
C'è anche builtins
, per i comandi integrati.
(( ${+builtins[foo]} )) && print 'foo is a builtin command'