Was ist ein „Befehl“ bei Bash?

Was ist ein „Befehl“ bei Bash?

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, commanddass tatsächlich etwas auf Bash passiert.

Gibt außerdem command -hzurü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, -hwenn 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 -hist 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 -hsich um eine gültige Option handelt, abernichtbedeuten „Hilfe“ sind ls, free, df, du. All diese Angaben dienen nur zur Information, aber die Annahme, dass -himmer nur „Hilfe“ bedeuten wird, ist eine gefährliche Annahme.)

Antwort2

commandWie fast alles andere ist Unix/Linux in Manpages dokumentiert. Typing man commandliefert das Handbuch, in bashdem 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.

verwandte Informationen