2016-08-03 29 views
1

Was ist die Verwendung der 'Befehl' Bash Shell eingebaut? This Seite sagt, dass es die Shell-Funktion Lookup unterdrückt, aber ich bin mir nicht sicher, was es bedeutet. Kannst du es erklären oder ein Beispiel geben?Verwendung des 'Befehls' in Bash-Shell eingebaut

+0

Bitte den Link an die richtige Stelle Punkt machen. – sjsam

+0

Beachten Sie, dass der 'Befehl' auch verwendet werden kann, um Shell-Befehlssuche zu unterdrücken. Zum Beispiel führt "time" einen Shell-Built-In-Befehl aus, während "Command Time" oder "\ Time" eine ausführbare Datei "/ bin/date" ausführt. – DaBler

Antwort

4

beachten:

$ date() { echo "This is not the date"; } 
$ date 
This is not the date 
$ command date 
Tue Aug 2 23:54:37 PDT 2016 
+1

Cool ++ Das beste Beispiel überhaupt;) ++ – sjsam

1

Nehmen wir ein einfaches Beispiel für eine Funktion. Wir möchten sicherstellen, dass cp immer die Option -i verwendet. Wir könnten das mit einem Alias ​​machen, aber Aliase sind einfach und Sie können nicht viel Intelligenz in sie einbauen. Funktionen sind viel mächtiger.

Wir könnten versuchen, diese (denken Sie daran, dies ist nur ein einfaches Beispiel):

cp() { 
    cp -i "[email protected]" 
} 

cp gash.txt gash2.txt 

, die uns unendliche Rekursion gibt! Es ruft sich immer selbst an. Wir konnten /bin/cp in diesem Fall verwenden, aber das ist, was command für ist:

cp() { 
    command cp -i "[email protected]" 
} 

cp gash.txt gash2.txt 

Das funktioniert, weil jetzt ignoriert es die cp Funktion.