shell练习题(四)——判断用户相关信息

 1、从键盘输入文件夹名
(1)这个文件是否存在,若不存在则给予一一个“Filename does not exist"的讯息,并中断程序;
(2)若这个文件存在,则判断他是个文件或目录,结果输出“Filename is regularfile”或“Filename is directory”,
(3)判断一下,执行者的身份对这个文件或目录所拥有的权限,并输出权限数据!

#!/bin/bash

read -p "请输入文件名夹:" Filename
re=$(`test -r $Filename` && echo "readable")
wr=$(`test -w $Filename` && echo "writeable")
ex=$(`test -x $Filename` && echo "executable")
if [ ! -e $Filename ]
then
    echo "$Filename does not exist"
    exit
elif [ -f $Filename ]
then
    echo "$Filename is regular file"
    echo "`whoami` is owned $re,$wr,$ex"
    ls -l $Filename
else
    echo "$Filename is directory"
    echo "`whoami` is owned $re,$wr,$ex"
    ls -dl $Filename
fi

运行结果

2、编写脚本user_ info查找用户是否存在,如何存在则显示用户的主目录信息。如何用户不存在,则判断在/home下是否存在以该用户名命名的目录命名的目录。.
user_ info tom
要求能够处理用户的错误调用,并给出提示。

#!/bin/bash

if [ $# -eq 0 ]
then
    echo "请传入要判断的用户"
    exit 5
elif id $1 &> /dev/null
then
    ls -l /home/$1
else
    echo "用户不存在"
    ls -l /home/$1 &> /dev/null && echo "但是用户拥有家目录"
fi

运行结果

 6、编写脚本user_add,在创建新用户前,判断用户名是否存在,并相应处理。(将第2题的脚本改为函数,在主程序中,创建用户之前,调用该函数判断用户是否存在)
user_add tom
通过函数的返回值代表不同的情况。

#!/bin/bash

user_info() {
    if [ $# -eq 0 ]
    then
        echo "请传入要判断的用户"
        exit 5
    elif id $1 &> /dev/null
    then
        ls -l /home/$1
    else
        echo "用户不存在即将创建用户....."
        ls -l /home/$1 &> /dev/null && echo "该用户已拥有家目录"
    fi
}

user_info $1
if grep $1 /etc/passwd &> /dev/null
then
    echo "用户名已存在"
    exit 6
else
    echo "正在创建用户$1"
    useradd $1
    echo "$1用户创建完成"
fi

运行结果

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值