Esta es mi primera vez bash scripting, así que probablemente estoy cometiendo un error fácil.
Básicamente, estoy tratando de escribir un script que obtenga los grupos de un usuario, y si están en un grupo determinado, lo registrará en consecuencia. Evidentemente habrá más funcionalidades, ¡pero no tiene sentido construir eso cuando ni siquiera puedo hacer que la expresión regular funcione!
Hasta ahora, tengo esto:
#!/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
Todos los lugares donde he probado esa expresión regular, funciona. Pero en el script bash, solo genera el $groups
, seguido de No match
. Entonces, ¿alguien puede decirme qué le pasa?
^([a-zA-Z0-9\-_]+)
luego agregue los dos puntos y así sucesivamente ... debe averiguar muy pronto, ¿dónde está el problema?