所以在Ubuntu中,如果登录的用户在某个组中,则程序必须从shell的启动开始。在/etc/bash.bashrc中使用if语句是我们现在正在尝试的,但我们不知道如何为这种情况形成有效的if语句。
if [ group == familie ]; then
*the program that has to be started*
fi
这是我们到目前为止的陈述。
答案 0 :(得分:1)
我可能会使用id
,因为它的输出更容易解析groups
,它可能包含空格(例如在cygwin中):
if [[ $(/usr/bin/id) == *groups*[,=]'20(games)'* ]] ; then
echo yes
else
echo no
fi
使用您的群组ID和姓名代替20
和games
。
答案 1 :(得分:1)
有很多方法可以做到这一点。例如,您可以使用/etc/group
,grep
和cut
直接解析tr
文件:
grep -E ^$GROUPNAME: /etc/group | cut -d: -f4 | tr , "\n" | grep -E ^$USERNAME$ | wc -l
如果上一个命令的输出非零,则该用户在该组中。显然,您需要在输入中替换$GROUPNAME
和$USERNAME
。