To jest mój pierwszy skrypt bashowy, więc prawdopodobnie popełniam łatwy błąd.
Zasadniczo próbuję napisać skrypt, który pobiera grupy użytkowników, a jeśli należą do określonej grupy, odpowiednio to zarejestruje. Oczywiście będzie więcej funkcji, ale nie ma sensu budować tego, kiedy nie mogę nawet uruchomić wyrażenia regularnego!
Do tej pory mam to:
#!/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
Każde miejsce, w którym próbowałem tego wyrażenia regularnego, działa. Ale w skrypcie bash zawsze wyświetla tylko $groups
, a następnie No match
. Czy ktoś może mi powiedzieć, co jest z tym nie tak?
^([a-zA-Z0-9\-_]+)
a następnie dodaj dwukropek i tak dalej ... powinieneś wkrótce dowiedzieć się, gdzie jest problem.