#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、脚本还不够严谨,有一些异常没有捕获也没有重定向,不过如果你是交作业的话就问题不大咯。
采用下面这种形式:
: <<COMMENTBLOCK代码行差脊1
代码行2
代码行3
COMMENTBLOCK
注意:第咐银二衡庆宴个COMMENTBLOCK需要顶格写,前面不能有空格。
当然,这两个COMMENTBLOCK也可以替换成任意在被注释代码行中未出现过的字符串。、
其实是利用了Here Documents,将代码段作为空命令 : 的输入。
关于Here Documents,参见:http://linux.die.net/abs-guide/here-docs.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)