shell脚本要求输入一个用户,如果用户存在,则打印该用户,若不存在,创建新用户(改了好多遍都不对)求大神们指点一二

解决方案 »

  1.   

    #! /bin/bash
    Find_ u(){
    [ -z $1 ] &&  return 1
    if id $1 &> /dev/null
    then
    echo "$1 UID is 'id -u $1'"
    echo "$1 Shell is 'grep "^$1:"'" /etc/passwd \
    |cut "-d':' f7'"
    else
    return 1
    fi
    }
    while : ;do
    read -p "Please input a username[ quit to exit ] :" User 
    if[ $User=quit ]
    then
    exit 0
    Find_ u $User
    Res=$?
    [ $Res  -eq 1 ] && echo "No such $User" 
    fi
    done
      

  2.   

    #! /bin/bash
    Find_ u(){
    [ -z $1 ] &&  return 1
    if id $1 &> /dev/null
    then
    echo "$1 UID is 'id -u $1'"
    echo "$1 Shell is 'grep "^$1:"'" /etc/passwd \
    |cut "-d':' f7'"
    else
    return 1
    fi
    }
    while : ;do
    read -p "Please input a username[ quit to exit ] :" User 
    if[ $User=quit ]
    then
    exit 0
    Find_ u $User
    Res=$?
    [ $Res  -eq 1 ] && echo "No such $User" 
    fi
    done
      

  3.   

    #! /bin/bash
    Find_ u(){
    [ -z $1 ] &&  return 1
    if id $1 &> /dev/null
    then
    echo "$1 UID is 'id -u $1'"
    echo "$1 Shell is 'grep "^$1:"'" /etc/passwd \
    |cut "-d':' f7'"
    else
    return 1
    fi
    }
    while : ;do
    read -p "Please input a username[ quit to exit ] :" User 
    if[ $User=quit ]
    then
    exit 0
    Find_ u $User
    Res=$?
    [ $Res  -eq 1 ] && echo "No such $User" 
    fi
    done
    你好,只不过新建一个判断一个用户是否存在和新建,脚本没那么复杂吧,
    read -p "Please input a username:" User
    egrep "^${User}" /etc/passwd >& /dev/null
    if [ $? -ne 0 ];then
        ehco "No such ${User}"
        echo "Add user ..."
        useradd ${User}
    else
        echo "User id: $(id ${User})"
    fi
      

  4.   

    #! /bin/bash
    Find_ u(){
    [ -z $1 ] &&  return 1
    if id $1 &> /dev/null
    then
    echo "$1 UID is 'id -u $1'"
    echo "$1 Shell is 'grep "^$1:"'" /etc/passwd \
    |cut "-d':' f7'"
    else
    return 1
    fi
    }
    while : ;do
    read -p "Please input a username[ quit to exit ] :" User 
    if[ $User=quit ]
    then
    exit 0
    Find_ u $User
    Res=$?
    [ $Res  -eq 1 ] && echo "No such $User" 
    fi
    done
    你好,只不过新建一个判断一个用户是否存在和新建,脚本没那么复杂吧,
    read -p "Please input a username:" User
    egrep "^${User}" /etc/passwd >& /dev/null
    if [ $? -ne 0 ];then
        ehco "No such ${User}"
        echo "Add user ..."
        useradd ${User}
    else
        echo "User id: $(id ${User})"
    fi
    感谢老哥替我指点迷津
      

  5.   

    egrep "^${User}" /etc/passwd 有 BUG,
    比如已有用 abc
    要判断 ab 用户是否存在。
      

  6.   

    -------------------------------------------------------------
    你好,你说的很对,把该命令行修改为:awk -F':' '{print $1}' /etc/passwd | egrep "^${User}$"
      

  7.   

    思路; shell传参自己百度。
    输入用户,去cat /etc/passwd 可以查看所有用户的列表, 有则退出,无则新建 useradd -m username -d /home/username ;passwd username;
    当然权限要sudo,不建议你去看别人给你的鱼。
    授人以鱼不如授人以渔。
      

  8.   

    直接exit 0,下面就不执行了吧