编写一个Linux的shell脚本求加注释

编写一个叫simple-useradd.sh的脚本,把一个用户加入到系统,这个脚本应实现以下功能:(1)只使用一个参数,其他情况在退出后打印一条提示信息(2)检查/etc... 编写一个叫simple-useradd.sh的脚本, 把一个用户加入到系统,这个脚本应实现以下功能:
(1)只使用一个参数,其他情况在退出后打印一条提示信息
(2)检查/etc/passwd文件,屏幕输出UID的消息
(3)检查/etc/group文件,屏幕输出GID信息
(4)用户从键盘输入信息--新用户的描述、使用shell、UID、GID, 并把这些信息分别添加到/etc/passwd、/etc/group、/etc/shadow中, 创建用户的主目录/home/***---***为用户名
(5)设置新用户的密码
此脚本的界面为:
----Main menu
1------------ Display UID
2------------ Display GID
3------------ Input new user
4------------ Set password
choice:***

----Input new user Menu
username: ******
shell: /bin/bash
UID: ****
GID: ****
展开
 我来答
百度网友17c8cc6
推荐于2018-05-11 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:58
采纳率:0%
帮助的人:66.3万
展开全部
#!/bin/bash
#filename:simple-useradd.sh

##(1)只使用一个参数,其他情况在退出后打印一条提示信息
## 这个要求有点不明确,这是一个根据提示来执行的脚本,正常应该是不用传递参数的。
if [ $# -ne 0 ];
then
    echo "Usage: $0"
    exit 1
fi
##(2)检查/etc/passwd文件,屏幕输出UID的消息
##定义函数DisplayUID
function DisplayUID(){
    cat /etc/passwd
}
##(3)检查/etc/group文件,屏幕输出GID信息
##定义函数DisplayGID
function DisplayGID(){
    cat /etc/passwd
}
##(4)用户从键盘输入信息--新用户的描述、使用shell、UID、GID, 并把这些信息分别添加到/etc/passwd、/etc/group、/etc/shadow中, 创建用户的主目录/home/***---***为用户名
##定义函数InputNewUser
function InputNewUser(){
    echo "---Input new user  Menu"
    read -p "username:" INusername
    read -p "shell:" INshell
    read -p "UID:" INUID
    read -p "GID:" INGID
    echo "开始在/etc/passwd添加帐号信息"
    echo "开始在/etc/group添加帐号信息"
    echo "开始在/etc/shadow添加帐号信息"
    echo "创建用户目录…………"
    useradd -s $INshell -u $INUID -g $INGID -m $INusername   ##useradd用来根据输入,创建新用户
    if [ $? -ne 0 ];  #对添加结果进行判断
    then
        echo "添加用户出错了"
        exit 1
    fi
}
##(5)设置新用户的密码
##定义SetPassWord
function SetPassWord(){
    local INusername
    echo "SetPassWord:"
    read -p "username:" INusername
    passwd $INusername
}

while true  ## 进入菜单循环
do
    cat<<-EOF  ## 打印菜单
        1------------ Display UID
        2------------ Display GID
        3------------ Input new user
        4------------ Set password
        "按Qq退出"
EOF
    read -p "choice:???" choice  #接收用户输入
    case $choice in  # 根据用户选择来执行相应的函数
        1) DisplayUID;;
        2) DisplayGID;;
        3) InputNewUser;;
        4) SetPassWord;;
        [Qq]) echo "bye ";exit 0;;
    esac
done

这个脚本还有如下问题:

1、”只使用一个参数,其他情况在退出后打印一条提示信息”这个需求不明确,不知道是啥意思,正常情况下,像这种脚本都是不用位置参数的,也可能我不理解题目的意思;

2、脚本还不够严谨,有一些异常没有捕获也没有重定向,不过如果你是交作业的话就问题不大咯。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式