我有两个参数: linux用户组列表
groupsUsers=$(id -nG ${utilisateur})
所有用户linux组列表(linux组+应用程序)
list_all_groups=$(curl -u GET "${edge_admin_nodes}_${port_http}"/applications/lists)
我该如何测试groupsUsers是否存在于list_all_groups
中,如果是“ no”,我将结果存储在变量中吗?
我做了这个解决方案,但是我不确定该解决方案。
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
答案 0 :(得分:2)
通常,我更喜欢正确的解析。但是,常见的解决方案是将定界符放在两个字符串之间,例如:
if echo ",$list_all_groups," | grep -q ",$groupUser," then
这会针对特定条目及其分隔符检查在原始列表中带有逗号的字符串(因此我们不必处理字符串的开头/结尾差异),这样我们就不会匹配foo
的groupUser,在foobar
的list_all_groups中有一个条目。