Come verificare se il comando è alias, funzione o binario?


Risposte:


23

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


3

La risposta dipenderà dalla shell che stai usando.

Per zsh, shell builtin whence -wti dirà esattamente cosa vuoi

per esempio

$ whence -w whence
whence : builtin
$ whence -w man     
man : command 

1

In zsh è possibile controllare i aliases, functionse commandsgli 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'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.