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
 

turrican

Well-Known Member
@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
 

TCM

Well-Known Member
Backticks sollte man sich abgewöhnen. $() ist schachtelbar und optisch eindeutig von single quotes zu unterscheiden.
 

pit234a

Well-Known Member
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.
 
Oben