Đây là lần đầu tiên tôi bash scripting nên có lẽ tôi đang mắc một lỗi dễ dàng.
Về cơ bản, tôi đang cố gắng viết một tập lệnh có được các nhóm người dùng và nếu họ ở trong một nhóm nhất định, nó sẽ ghi nhật ký tương ứng. Rõ ràng là sẽ có nhiều chức năng hơn, nhưng không có điểm nào xây dựng mà khi tôi thậm chí không thể làm cho regex hoạt động!
Cho đến nay, tôi có điều này:
#!/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
Mỗi nơi tôi đã thử regex đó, nó hoạt động. Nhưng trong tập lệnh bash, nó chỉ bao giờ xuất ra $groups
, theo sau No match
. Vì vậy, ai đó có thể cho tôi biết những gì sai với nó?
^([a-zA-Z0-9\-_]+)
sau đó thêm dấu hai chấm và cứ thế ... bạn nên tìm hiểu khá sớm, vấn đề ở đâu.