Wenn ich auf meinem Terminal tippe command
, erhalte ich nicht „Befehl nicht gefunden“ und der Exitcode ist 0. Ich gehe davon aus, dass dies bedeutet, command
dass tatsächlich etwas auf Bash passiert.
Gibt außerdem command -h
zurück:
bash: command: -h: invalid option
command: usage: command [-pVv] command [arg ...]
Was wird es verwendet?
Antwort1
Aus help command
:
$ help command
command: command [-pVv] command [arg ...]
Execute a simple command or display information about commands.
Runs COMMAND with ARGS suppressing shell function lookup, or display
information about the specified COMMANDs. Can be used to invoke commands
on disk when a function with the same name exists.
Options:
-p use a default value for PATH that is guaranteed to find all of
the standard utilities
-v print a description of COMMAND similar to the `type' builtin
-V print a more verbose description of each COMMAND
Exit Status:
Returns exit status of COMMAND, or failure if COMMAND is not found.
Als allgemeinerer Hinweis: Anstatt es nur zu verwenden, -h
wenn Sie nicht wissen, was ein Befehl macht, sollten Sie Folgendes versuchen:
type -a command
In diesem Fall hätte Ihnen das gesagt, dass es sich um ein Shell-Builtin handelt.
help command
ist gut für Shell-Builtins. Für andere Befehle (undAuchfür Shell-Builtins, eigentlich), versuchen Sie
man somecommand
Auch -h
ist nichtNotwendigdie Option „Hilfe“. Wenn Sie nicht wissen, was ein Befehl tut, ist das möglicherweise keine sichere Annahme. Sicherer ist --help
…
somecommand --help
(Allgemeine Befehle, bei denen es -h
sich um eine gültige Option handelt, abernichtbedeuten „Hilfe“ sind ls
, free
, df
, du
. All diese Angaben dienen nur zur Information, aber die Annahme, dass -h
immer nur „Hilfe“ bedeuten wird, ist eine gefährliche Annahme.)
Antwort2
command
Wie fast alles andere ist Unix/Linux in Manpages dokumentiert. Typing man command
liefert das Handbuch, in bash
dem ein Unterabschnitt dem integrierten Befehl gewidmet ist command
:
Befehl [-pVv] Befehl [Argument ...]
Führen Sie den Befehl mit Argumenten aus, die die normale Shell-Funktionssuche unterdrücken. Es werden nur integrierte Befehle oder Befehle ausgeführt, die im Pfad gefunden wurden. Wenn die Option -p angegeben ist, wird die Suche nach dem Befehl mit einem Standardwert für Pfad durchgeführt, der garantiert alle Standard-Dienstprogramme findet. Wenn entweder die Option -V oder -v angegeben ist, wird eine Beschreibung des Befehls gedruckt. Die Option -v bewirkt, dass ein einzelnes Wort angezeigt wird, das den Befehl oder den Dateinamen angibt, mit dem der Befehl aufgerufen wurde; die Option -V erzeugt eine ausführlichere Beschreibung. Wenn die Option -V oder -v angegeben ist, ist der Beendigungsstatus 0, wenn der Befehl gefunden wurde, und 1, wenn nicht. Wenn keine der Optionen angegeben ist und ein Fehler aufgetreten ist oder der Befehl nicht gefunden werden kann, ist der Beendigungsstatus 127. Andernfalls ist der Beendigungsstatus des integrierten Befehls der Beendigungsstatus des Befehls.