Shellscripting: Programm Ausgabe in Variable schreiben, wie ?

kongstrong

Well-Known Member
Hallo,

unter FreeBSD 12.1 ist die doch die standard Shell (tsch) "/bin/sh", wenn ich richtig gelesen haben sollte, unter dieser Shell würde ich gerne mittels eines Shellscripts
die gesamte Ausgabe des Befehls: /sbin/sysctl -a in eine Variable schreiben, (aber nur in den Speicher, nicht per Datei auf die Festplatte!) , um später die Ausgabewerte weiter zu verarbeiten. Hätte jemand eventuell mal ein Code Beispiel wie das funktioniert ?
Danke
 
@kongstrong - "sh" und "tcsh" ist jeweils eine Shell; du gibst sie in der ersten Zeile im Skript an, z.B.

Code:
#!/usr/bin/env sh

TEST=`sysctl -a`


echo $TEST
 
Backticks sollte man sich abgewöhnen. $() ist schachtelbar und optisch eindeutig von single quotes zu unterscheiden.
 
und obwohl nicht gefragt, möchte ich mal anregen, eine Datei in ein tempfs zu legen und mit den geforderten Werten zu füllen.
Wenn das keine Geheimnisse sind, besteht auch kaum Gefahr und eine Datei ist vielleicht später, auch von anderen scripts, besser zu bearbeiten, als eine Variable, die ja womöglich erst noch exportiert werden muss.

Für mich hat das den Vorteil, dass ich mich einfacher an die Abfragen herantasten kann: die Datei kann ich auch mit einem grafischen Editor einfach betrachten und sehen, nach welchem Kriterium ich suchen möchte.
 
Zurück
Oben