Funktion von schrägen Hochkommas in der Konsole

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
Mathias
Beiträge: 6203
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Funktion von schrägen Hochkommas in der Konsole

Beitrag von Mathias »

Ich hatte mal eine Frage, was sich mit diesen schrägen Hochkommas an sich hat.
Nehmen wir mal folgendes Beispiel:

Code: Alles auswählen

pkg-config x11 --libs
Dieses spuckt "-lX11" aus.
Dies wir für C/C++ gebraucht. X11 ist natürlich ein sehr einfaches Beispiel.

Bei gtk2 wird schon einiges mehr gebraucht.
Zum kompilieren, müsste man diesen ganzen Roman eingeben:

Code: Alles auswählen

gcc -o gtk gtk.c -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype
Und mit dem Kommando in den schrägen Hochkommas ist es nur diese Wenigkeit:

Code: Alles auswählen

gcc -o gtk gtk.c `pkg-config gtk+-2.0 --libs`
Kurz erklärt, die schrägen Hochkommas habe nichts mit C zu tun, die leiten nur die Standard-Ausgabe eines Befehles in einen Parameter um.

Hier ein einfaches Beispiel

Code: Alles auswählen

`echo ls`
Dies gibt einfach ls aus. Dies sollte mit jedem Linux funktionieren.

Oder dieses, das Echo Kommando gibt gtk.c aus, somit bekommt xed den Parameter gtk.c.

Code: Alles auswählen

xed `echo gtk.c`
Ich hoffe ich habe es verständlich beschrieben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1910
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Funktion von schrägen Hochkommas in der Konsole

Beitrag von Warf »

Das ist einfach eine andere Schreibweise für $(command), und führt command aus und ersetzt den gesammten ausdruck mit dem ergebnis des commands.

Die funktion die du hier beschreibst ist das es den output von prozessen als parameter für andere prozesse bereitstellt. Auch eine wichtige funktionalität dafür ist das einsetzen von variablen:

Code: Alles auswählen

DIRECTORIES=$(ls)
for DIR in $DIRECTORIES; do
  echo Found $DIR
done

Antworten