#!/bin/bash

#传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来

#判断是否传递一个参数
if [ ! $# -eq 1 ]; then
  echo "Usage:./group.sh ARG"
  exit 1
fi

#判断是否存在该用户
id $1 &> /dev/null
if [ ! $? -eq 0 ]; then
  echo "$1 not exits."
  exit 1
fi

#取给定用户所属基本组id
USERID=`id $1 | cut -d' ' -f3 | cut -d= -f2 | cut -d'(' -f1`
#取出组名称
GROUPNAME=`grep ".*:.*:$USERID:.*" /etc/group | cut -d: -f1`

#判断用户名和组名是否一致
if [ $1 = $GROUPNAME ]; then
  echo "UserName equals GroupName."
else
  echo "UserName not equals GroupName."
fi
#############判断结束############

 

 

优化:

 1 #!/bin/bash
 2 
 3 #传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来
 4 
 5 #判断是否传递一个参数
 6 if [ ! $# -eq 1 ]; then
 7   echo "Usage:./group.sh ARG"
 8   exit 1
 9 fi
10 
11 #判断是否存在该用户
12 #id $1 &> /dev/null
13 if ! id $1 &> /dev/null; then
14   echo "$1 not exits."
15   exit 1
16 fi
17 
18 #取给定用户所属基本组id
19 #USERID=`id $1 | cut -d' ' -f3 | cut -d= -f2 | cut -d'(' -f1`
20 #取出组名称
21 #GROUPNAME=`grep ".*:.*:$USERID:.*" /etc/group | cut -d: -f1`
22 
23 #判断用户名和组名是否一致
24 if [ `id -u -n $1` == `id -g -n $1` ]; then
25   echo "UserName equals GroupName."
26 else
27   echo "UserName not equals GroupName."
28 fi
29 #############判断结束############

 

posted on 2016-08-14 16:29  浮沉一梦  阅读(609)  评论(0编辑  收藏  举报