Ceci est ma première création de scripts bash, donc je fais probablement une erreur facile.
Fondamentalement, j'essaie d'écrire un script qui obtient les groupes d'un utilisateur, et s'ils se trouvent dans un certain groupe, il enregistrera cela en conséquence. Évidemment, il y aura plus de fonctionnalités, mais cela ne sert à rien de dire que quand je ne peux même pas faire fonctionner l'expression régulière!
Jusqu'à présent, j'ai ceci:
#!/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
Chaque endroit où j'ai essayé ce regex, ça marche. Mais dans le script bash, il ne produit que le $groups
, suivi de No match
. Alors, quelqu'un peut-il me dire ce qui ne va pas?
^([a-zA-Z0-9\-_]+)
puis ajoutez les deux points et ainsi de suite ... vous devriez découvrir très bientôt, où est le problème.