Wie kann ich Umgebungsvariablen in Bash-Skript auswerten?
Ich soll ein Bash-Skript schreiben, das einen String übergeben bekommt. Es soll nun alle Umgebungsvariablen ausgeben, deren Namen mit diesem String beginnen. Ich habe den Befehl printenv entdeckt, aber ich weiß nicht, wie ich die einzelnen Umgebungsvariablen prüfen soll.
3 Antworten
Das ist einfach: Du musst nur in einer for-Schleife den Output von $(printenv) bzw. $(env) mit den Mitteln der Bash pruefen. Also zuerst die Schleife "for i in $(env) ; do" und dann ein Test wie "if [[ ${i} == MEIN_STRING ]]". (Hinweis: Da in meinem Beispiel die doppelten [ ] benutzt werden, braucht man die Ausdruecke nicht in "" schreiben.)
Vielen vielen Dank. Jetzt bin ich auf jeden Fall ein Stück weitergekommen.
Der Text MEIN_STRING steht zwischen zwei Sternchen. Leider konnte ich die hier nicht richtig schreiben ;)
probiere das Folgende im Terminal ...
set |grep suchstring
... wenn erfolgreich, packe das in ein Script und mache es ausführbar
also etwa so
#!/bin/bash
set |grep $1
das sollte reichen!
Falls du Leer- und Sonderzeichen verwenden willst, klammere mit ", also "$1"
Das Auslsen von Umgebungsvariablen in einem Bash Script ist trivial: Um die Variable test auszulesen, schreibt man einfach $test. Schwieriger ist da, auf alle Umgebungsvariablen zuzugreifen, die mit test anfangen...