小编jrd*_*rdn的帖子

bash脚本中的正则表达式

这是我第一次编写 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
Run Code Online (Sandbox Code Playgroud)

我尝试过该正则表达式的每个地方,它都有效。但是在 bash 脚本中,它只输出$groups, 后跟No match. 那么有人可以告诉我它有什么问题吗?

scripting bash regular-expression bash-script

12
推荐指数
1
解决办法
3万
查看次数

标签 统计

bash ×1

bash-script ×1

regular-expression ×1

scripting ×1