测试字符串外壳中的现有子字符串



我有两个参数: 用户组的 Linux 列表

groupsUsers=$(id -nG ${utilisateur})

用户的所有组 Linux 的列表(Linux 组 + 应用程序(

list_all_groups=$(curl -u GET "${edge_admin_nodes}_${port_http}"/applications/lists)

如何测试组用户是否存在于list_all_groups或否,并且在"否"的情况下我将结果存储在变量中?

我做了这个解决方案,但我不确定是否有效。

for groupUser in ${groupsUsers}
do 
if echo "$list_all_groups" | grep -o "$groupUser" then
echo "${groupUser}"

then
my_result=$( echo "$groups,$groupUser" )
result="${groups},"${groupUser}""
fi
done

一般来说,我更喜欢正确的解析。但是,一个常见的解决方案是将分隔符放在两个字符串周围,例如:

if echo ",$list_all_groups," | grep -q ",$groupUser," then

这会根据特定条目检查原始列表周围有逗号的字符串(因此我们不必处理字符串的开头/结尾差异(,以及它的分隔符,这样我们就不会将 groupUser offoofoobarlist_all_groups条目匹配。

最新更新