Bu benim ilk kez bash senaryom, bu yüzden muhtemelen kolay bir hata yapıyorum.
Temel olarak, bir kullanıcının gruplarını alır bir komut dosyası yazmaya çalışıyorum ve belirli bir grupta ise, buna göre kaydedecektir. Görünüşe göre daha fazla işlevsellik olacak, ama regex'i bile çalıştıramayacağım zaman bir nokta yok!
Şimdiye kadar, bu var:
#!/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
Bu normal ifadeyi denediğim her yerde çalışıyor. Ama bash senaryosunda, sadece çıkışını ve $groups
ardından gelir No match
. Birisi bana bunun neyin yanlış olduğunu söyleyebilir mi?
^([a-zA-Z0-9\-_]+)
sonra iki nokta üst üste eklemek ve böylece ... çok yakında öğrenmelisiniz, sorunun nerede olduğunu.