Herausfinden, ob ucr Variable gesetzt ist

german

#1

Hallo,

Ich suche für ein Skript nach einer einfachen Methode zu überprüfen, ob eine ucr-Variable gesetzt ist. Ich will nicht den Wert, sondern nur wissen, die Variable existiert. Leider geben ‘ucr get’ und ‘ucr search’ immer 0 zurück, auch wenn die Variable nicht existiert.

Besten Dank,
Christoph Wickert


#2

Hallo,

die Rückgabe eines “ucr get” sollte sich unterscheiden, je nach dem ob die Variable einen Wert enthält oder nicht:[code]# ucr set x1=""
Create x1

ucr set x2=“a”

Create x2

ucr get x1; echo $?

0

ucr get x2; echo $?

a
0

ucr get x3; echo $?

0[/code]

Mit freundlichen Grüßen
Janis Meybohm


#3

Hallo,

und danke für die Antwort. Natürlich unterscheidet sich die Ausgabe, aber ich suchte nicht nach dem Inhalt der Ausgabe, sondern nur nach einem einfachen Test. Ich habe mir jetzt mit

[ -z "$(ucr get variable)" ] && echo "Variable existiert nicht" beholfen.

Wäre schön, wenn es in Zukunft unterschiedliche exit codes gäbe.

Danke,
Christoph Wickert


#4

Wie wärs mit einem:

[quote]if [ “grep "^/var/name:" /etc/univention/base.conf” != “” ];
echo “variable exists”
fi[/quote]


#5

[quote=“DBGTMaster”]Wie wärs mit einem:

[quote]if [ “grep "^/var/name:" /etc/univention/base.conf” != “” ];
echo “variable exists”
fi[/quote][/quote]
Bitte nicht, es gibt unterschiedliche UCR Layer und die würden dann nicht beachtet.