これは初めてのbashスクリプトなので、たぶん簡単な間違いを犯しているでしょう。
基本的に、ユーザーのグループを取得するスクリプトを作成しようとしています。特定のグループに属している場合、それに応じてログに記録します。明らかに、より多くの機能がありますが、正規表現を動作させることさえできないとき、それを構築する意味はありません!
これまでのところ、私はこれを持っています:
#!/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
私がその正規表現を試したすべての場所、それは動作します。しかし、bashスクリプトでは$groups
、が出力された後にのみが出力されNo match
ます。だから誰かが私に何が悪いのか教えてもらえますか?
^([a-zA-Z0-9\-_]+)
てからコロンを追加するなど...すぐに問題の場所を見つける必要があります。