Wie prüfe ich, ob der Befehl ein Alias, eine Funktion oder eine Binärdatei ist?


Antworten:


23

Wenn Sie sich auf Bash (oder einer anderen Bourne-ähnlichen Shell) befinden, können Sie verwenden type.

type command

commandZeigt an, ob eine Shell eingebaut ist, ob ein Alias ​​(und wenn ja, ein Alias ​​für was), eine Funktion (und wenn ja, ein Funktionshauptteil) oder eine Datei (und wenn ja, der Pfad zur Datei) vorliegt. .

Weitere Informationen zu einer "binären" Datei erhalten Sie hier

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

Dies gibt nichts zurück, wenn commandein Alias, eine Funktion oder eine Shell eingebaut ist, gibt aber mehr Informationen zurück, wenn es sich um ein Skript oder eine kompilierte Binärdatei handelt.

Verweise


3

Die Antwort hängt davon ab, welche Shell Sie verwenden.

Für zsh whence -wsagt Ihnen Shell Builtin genau, was Sie wollen

z.B

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

1

In ZSH können Sie die überprüfen aliases, functionsund commandsArrays.

(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'

Es gibt auch builtinsfür eingebaute Befehle.

(( ${+builtins[foo]} )) && print 'foo is a builtin command'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.