红联Linux门户
Linux帮助

求助一个shell编程,请求高手

发布时间:2008-03-23 19:34:20来源:红联作者:xinglight
求助:需要一个Shell脚本:命令行参数为用户名,查询系统信息,以确定该用户是否已注册,如已注册,则显示该用户的home directory及所用shell,如果该用户尚未注册,则显示尚未注册信息
谢谢啦!!!:0)1 万分感谢
文章评论

共有 5 条评论

  1. linux-nero 于 2009-11-16 17:53:06发表:

    支持~~

  2. 魔幻幽灵 于 2008-03-25 22:43:30发表:

    #!/usr/bin/sh

    mfile=~/temp.txt #自定义临时文件
    echo
    [ -z $1 ] && {
    echo -n " 未指定待查询的用户名称!\n 是否列出所有注册用户信息(Y/N)? "
    read ok
    [ -z $ok ] && echo && exit
    { [ $ok != N ] && [ $ok != n ] && [ $ok != Y ] && [ $ok != y ] ;} && echo && exit
    { [ $ok = N ] || [ $ok = n ] ;} && echo && exit
    { [ $ok = Y ] || [ $ok = y ] ;} && awk -F: '{print "\n 用户 " $1 " 已注册!\n","用户名: "$1"\n","主目录: "$6"\n","登录SHELL: "$7}' /etc/passwd && echo && exit
    }
    if grep ^$1: /etc/passwd > $mfile ; then
    awk -F: '{print " 用户 " $1 " 已注册!\n","用户名: "$1"\n","主目录: "$6"\n","登录SHELL: "$7}' $mfile
    else
    echo " 用户 $1 尚未注册!"
    fi;
    echo
    rm -f $mfile




    _____________________________________________

    注意: 这个shell中所有awk的字符串格式都是依据本人系统中/etc/passwd文件而来的。如有运行错误,请检查你相应的文件中的内容格式,并对awk字符串格式作适当更改。

    [ 本帖最后由 魔幻幽灵 于 2008-3-26 13:34 编辑 ]

  3. 魔幻幽灵 于 2008-03-25 21:26:24发表:

    提供一个简单思路,具体shell自己写写....

    假设定义用户名变量 name
    grep 文件/etc/passwd 中以 $name: 开头的行,并输出到临时文件中(设为temp.txt)
    grep temp.txt 中内容是否以 $name 开头,是则输出肯定信息,否则输出否定信息并中断shell
    grep temp.txt 中内容是否存在 :*$name: ,有则输出家目录,否则输出否定信息
    grep temp.txt 中内容是否以 :/bin/*sh 结尾,是则输出用户shell,否则输出否定信息

    [ 本帖最后由 魔幻幽灵 于 2008-3-26 15:32 编辑 ]

  4. netlawe 于 2008-03-25 16:11:39发表:

    你这需要用shell操作数据库比较麻烦吧,这样的话还不如用php脚本的来写要简单的多,

  5. zzxzuozuo 于 2008-03-25 09:16:01发表:

    不知道列~~~~~~~

    还没到那个级别