Was sind Shell-Form und Exec Form von Befehlen? Ich habe mehrere Dokumente durchgelesen, um eine klare Vorstellung von Shell-Form und Exec-Form zu bekommen. Aber alle sahen für mich verwirrend aus. Kann jemand helfen herauszufinden, was der Unterschied zwischen diesen beiden Formen ist?
PS: Obwohl ich auf diese Begriffe gestoßen bin, während ich die docker Datei-Anweisungen durchging (zB: RUN, CMD, ENTRYPOINT), möchte ich den Unterschied zwischen ihnen im Allgemeinen, nicht im Docker Kontext kennen.Was sind Shell-Form und Exec-Form?
1
A
Antwort
1
Die Andockfensters Shell-Syntax (die nur eine Zeichenfolge als RUN
, ENTRYPOINT
ist, und CMD
) wird diese Zeichenfolge als Parameter /bin/sh -c
auszuführen. Dies gibt Ihnen eine Shell zum Erweitern von Variablen, Unterbefehlen, Rohrleitungsausgaben, Verkettungsbefehlen und anderen Shell-Funktionen.
RUN ls * | grep $trigger_filename || echo file missing && exit 1
Die exec Syntax läuft einfach die binären Sie mit dem args Sie gehören, aber ohne Funktionen des Shell-Parsing. Im Andockfenster geben Sie dies mit einem json-formatierten Array an.
Der Vorteil der Exec-Syntax ist das Entfernen der Shell aus dem gestarteten Prozess, der die Signalverarbeitung verhindern kann. Die Neuformatierung des Befehls mit /bin/sh -c
in der Shell-Syntax kann auch die Verkettung von Ihrem Einstiegspunkt und cmd zusammen brechen.
Verwandte Themen
- 1. Was sind TestExecutionListeners und was machen sie?
- 2. Was sind Closures und Callbacks?
- 3. Was sind class_setIvarLayout und class_getIvarLayout?
- 4. Was sind Serialisierung und Parcel
- 5. Was sind Hilfsklassen und Skripte?
- 6. Was sind automatische und Registervariablen?
- 7. Was sind "cerr" und "stderr"?
- 8. Was sind Projektion und Auswahl?
- 9. Was sind Tupel und Listen?
- 10. Was sind DailyTrigger und ScheduledTasks?
- 11. Was sind '!' und '?' in Swift
- 12. Was sind Signale und Slots?
- 13. Was sind Eff und Aff?
- 14. Was sind Hochpass- und Tiefpassfilter?
- 15. Was sind SO_SNDBUF und SO_RECVBUF
- 16. Was sind paddingStart und paddingEnd?
- 17. Was sind Training und Testdatensätze
- 18. Was ist Boxen und Unboxing und was sind die Kompromisse?
- 19. Was sind eigentlich Cpython, IronPython und PyPy?
- 20. Was bedeutet select() und poll() sind zustandslos?
- 21. METADATA und METADATA.jl: Was sind die Unterschiede?
- 22. CSS Was sind -moz- und -webkit-?
- 23. Was sind "Vokabeltypen" und wie viele existieren?
- 24. Was sind harte und weiche Tabs?
- 25. Was sind die | und^Operatoren verwendet für?
- 26. Optimierung: Was sind sidetable_release() und sideTable_retain()?
- 27. Was sind Screen.width und Screen.height Werte?
- 28. Was sind `styles.css.less` und` styles.css.scss` Dateien
- 29. Was sind UV- und v8 in NodeJS
- 30. Was sind Haupt- und Hintergrundthreads in iOS?
Sie würden gut tun, "Docker" als Tag zu Ihrem Q und vielleicht in der Überschrift einzuschließen. Viel Glück. – shellter