#!/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 #############判断结束############
时间: 2024-11-05 12:25:20