Im Oozie Shell Aktion habe ich versucht, direkt mkdir
den Befehl zu verwenden, es funktionierte. Aber wenn ich andere Befehle wie exec
versuchte. Es gibt einen Fehler `` Befehl nicht gefunden`. WarumOozie Shell Aktion> warum nur einige Shell-Befehl erlauben, aber nicht alle
0
A
Antwort
0
$ die exec
/usr/bin/die: kein exec in (/ sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin /)
$ man bash
... SHELL BUILTIN BEFEHLE
... exec [-cl] [-a name] [Befehl [Argumente]]
Duh! exec
ist keine ausführbare Linux-Datei, die Sie im PATH finden können. es ist ein Shell integrierten Befehl - wie unset
oder alias
oder if .. then .. else .. fi
Aber Sie können eine Shell starten nur exec
heißt
bash -c "echo 'IN SUB-PROCESS' ; exec echo 'this is really a complicated way to run ECHO and terminate' ; echo 'NOT EXECUTED, EXEC TERMINATED THE SUB-PROCESS'"
Vielen Dank viel für Ihre kompakte Erklärung laufen. Genau das möchte ich wissen. Aber ich würde gerne wissen, warum Exec immer noch aufgerufen werden kann, obwohl es keine ausführbare Linux-Datei ist? Ist eingebettet ist die Shell-Binärdatei? – Rui
Die Shell führt einen Parser auf die Befehle, die Sie eingeben, dann filtert die * eingebaut * Befehle für die interne Verarbeitung und für den Rest versucht es eine passende ausführbare Datei zu finden. Das ist "eingebaut". Und mit 'csh' Shell hätten Sie übrigens sehr unterschiedliche Einbauten mit unterschiedlicher Syntax. –