Dies ist mein erstes Bash-Scripting, daher mache ich wahrscheinlich einen leichten Fehler.
Grundsätzlich versuche ich, ein Skript zu schreiben, das die Gruppen eines Benutzers abruft, und wenn sie sich in einer bestimmten Gruppe befinden, wird dies entsprechend protokolliert. Offensichtlich wird es mehr Funktionalität geben, aber es hat keinen Sinn, etwas aufzubauen, wenn ich nicht einmal den regulären Ausdruck zum Laufen bringen kann!
Bisher habe ich Folgendes:
#!/bin/bash
regex="^([a-zA-Z0-9\-_]+ : [a-zA-Z0-9\-_]+) (usergroup)$"
# example output
groups="username : username usergroup"
echo "$groups" >> /home/jrdn/log
if [[ "$groups" =~ $regex ]]; then
echo "Match!" >> /home/jrdn/log
else
echo "No match" >> /home/jrdn/log
fi
Jeder Ort, an dem ich dieses Regex ausprobiert habe, funktioniert. Im Bash-Skript wird jedoch immer nur das ausgegeben $groups
, gefolgt von No match
. Kann mir jemand sagen, was daran falsch ist?
^([a-zA-Z0-9\-_]+)
fügen Sie dann den Doppelpunkt hinzu und so weiter ... Sie sollten ziemlich bald herausfinden, wo das Problem liegt.