shell脚本基础练习2

1.编写一个脚本/root/bin/createuser.sh,脚本的执行语法必须是:createuser.sh -username -m password,选项与参数间可支持多空格,但不能顺序颠倒。当未指定正确的选项或参数时,以错误输出方式提示“createuser.sh -u username -m password ”后退出脚本。用户名必须以字母开头,可包括数字和_,否则不合法。以错误输出提示用户”用户名仅包含字母数据和下划线”。当用户名检测合法后,判断用户名是否已存在,若存在,再判断用户是否已设置过密码,若设置过密码,直接退出,未设置,则将密码设置为所指定的密码后以正确输出方式显示user密码已更新后退出。当用户名不存在,则创建用户,并为该用户设置所指定的密码后以正确输出方式显示“用户username已创建并更新密码”。要求脚本执行过程中不能有非要求的其他输出结果出现。脚本在非正确方式退出时应反回给?参数非0值。

shell脚本基础练习2

如图:脚本createuser.sh编写成功,且可实现所有要求,脚本内容及注释见下图:

shell脚本基础练习2

2.编写一个创建用户的脚本createyonghu.sh,执行该脚本不用输入任何参数,执行时会提示用户输入用户名,之后检测用户名是否存在,若存在直接提示用户已存在并退出,若不存在,再次提示用户输入密码,要求密码至少5个字符以上,仅可包含大小写及数字组成。 密码的输入过程不可见,且要求用户输入两次密码,两次不一致,直接退出。两次一致,则创建用户并将密码设置为指定密码后,提示用户及密码设置成功。

shell脚本基础练习2

如图:脚本createyonghu.sh编写成功,且可实现所有要求,脚本内容及注释如下:

shell脚本基础练习2

原创文章,作者:mayun,如若转载,请注明出处:http://www.178linux.com/84482

(0)
mayunmayun
上一篇 2017-08-12 16:42
下一篇 2017-08-12 17:08

相关推荐

  • 四.Linux博客-2016年7月26日ls、通配符、touch、cp、mv、rm、mkdir

    格式说明: 操作 概念 命令 说明及举例 四.ls、通配符、touch、cp、mv、rm、mkdir du -sh /sys 查看文件、文件夹大小 /sys/class/scsi_host/host2/scan 在线扫盘(新加硬盘执行这个命令后才能发现) stat /etc/issue 更详细的看数…

    Linux干货 2016-08-23
  • 运维自动化之系统安装

    自动化安装系统,cobbler的安装使用

    Linux干货 2018-01-15
  • 简述开源协议

    简述开源协议 现在一说到智能手机,相信很容易就会想到苹果和安卓。安卓搭载的Android是一种基于Linux的自由及开源的操作系统,苹果手机搭载OS X是苹果公司为Mac系列产品开发的专属操作系统。    安卓手机凭借其开源的特性达到与苹果系统分庭伉礼的地位,又凭借其开源的价格优势,牢牢把控手机设备的中低端市场,其市场占有率远远…

    Linux干货 2017-03-26
  • Memcache存储大数据的问题

    Memcache存储大数据的问题   huangguisu       Memcached存储单个item最大数据是在1MB内,如果数据超过1M,存取set和get是都是返回false,而且引起性能的问题。 我们之前对排行榜的数据进行缓存,由于排行榜在我们所有sql select…

    Linux干货 2015-05-05
  • N22+张zhangzhang+第6周博客作业

    请详细总结vim编辑器的使用并完成以下练习题   vim编辑器是vi编辑器的增强版,是全屏文本编辑器,用于完成文本的输出、删除、查找、替换、块操作等众多功能。一般分三种模式:编辑模式、输入模式、末行模式。 vim各种按键的功能 编辑模式: 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以…

    Linux干货 2016-09-20
  • 文本处理工具sed、vim

    文本处理工具sed、vim 一、sed的使用 1、sed的概念 sed简单地说sed是一种行处理工具。 sed 是一种流性的行编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末…

    Linux干货 2016-08-11