一个脚本逐步完善的过程

1、添加10个用户user1到user10,密码同用户名;但要求只有用户不存在的情况下才能添加;

1 #!/bin/bash

2

3 for I in `seq 1 10`;do

4         if id user$I &> /dev/null;then

5                 echo "user$I exisits!"

6         else

7                 useradd user$I &> /dev/null

8                 echo "user$I" | passwd --stdin user$I

9                 echo "user$I add finished!"

10         fi

11 done

2、扩展:

接受一个参数:

--add: 添加用户user1..user10,密码同用户名;但要求只有用户不存在的情况下才能添加;

--del: 删除用户user1..user10,但要求只有用户存在的情况下才能删除;

其它:退出

#!/bin/bash

if [ $1 == ‘--add‘ ];then

for I in `seq 1 10`;do

if id user$I &> /dev/null; then

echo "user$I exisit!"

else

useradd user$I &> /dev/null

echo "user$I" | passwd --stdin user$I &> /dev/null

echo "user$I add finished!"

fi

done

elif [ $1 == ‘--del‘ ];then

for I in `seq 1 10`;do

if id user$I &> /dev/null;then

userdel user$I

echo "user$I del finished!"

else

echo "user$I not exisits!"

fi

done

else

echo "Unknowed Commond"

echo "Usege : ./Adduser2.sh --add | --del"

exit 1

fi

3、扩展

接受两个参数:--add USER1,USER2,USER3...|--del USER1,USER2,USER3....|--help

--add: 添加用户指定的用户,密码同用户名;但要求只有用户不存在的情况下才能添加;

--del: 删除用户用户指定的用户,但要求只有用户存在的情况下才能删除;

--help:显示帮助信息;

其它:退出

#/bin/bash

if [ $1 == ‘--add‘ ];then

for I in `echo $2 | sed ‘s/,/ /g‘`;do

if id $I &> /dev/null;then

echo "$I exists!"

else

useradd $I &> /dev/null

echo "$I" | passwd --stdin $I &> /dev/null

echo "add $I finished!"

fi

done

elif [ $1 == ‘--del‘ ];then

for I in `echo $2 | sed ‘s/,/ /g‘`;do

if id $I &> /dev/null;then

userdel $I &> /dev/null

echo "del $I finished!"

else

echo "$I not exists!"

fi

done

elif [ $1 == ‘--help‘ ];then

echo "Usege: ./Admuser.sh --add USER1,USER2... | --del USER1,USER2... | --help"

else

echo "Unknowed COMMOND!"

exit 10

fi

时间: 2024-08-24 13:47:44

一个脚本逐步完善的过程的相关文章

一个脚本引发的血案

我们本身是一家互联网金融公司,公司的主流业务就是p2p,因为各种原因吧,15年底启动建设众筹平台.考虑到前期开发过程中的一些弊端和架构经验,本次架构引用了dubbo做soa服务的治理,web容器nginx+tomcat,后端语言采用java,框架选择spring+mybaits,前端模板引擎使用的是btl,app采用原生+h5的模式.这个架构可以参考我之前写的文章从零到百亿互联网金融架构发展史中的第三代系统架构,之前的文章主要介绍了架构的变迁,本篇文章主要介绍在第三代平台中遇到的问题以及解决方法

一个疑难bug的解决过程

一个crontab脚本,下载一个文件并把内容入mysql数据库.具体流程如下: 1, wget一个文件. 2,处理文件生成一个中间文件. 3,将中间文件load入库. 05 10 * * * /home/work/local/php5.4/bin/php /home/work/www/new_products1/web/index_cli.php actionads/index bug现象: 在线上,5次运行中,有2次会出错,就是入库的数据会缺失30%以上. 在线上手动运行脚本,没有一次出错.但

如何编写一个脚本

shell脚本编程 过程式编程,解释执行,依赖于外部程序文件运行; 脚本是什么:    命令的堆积;    但很多命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足;    脚本的用途:    自动化常用命令;    执行系统管理和故障排除;    创建简单的应用程序;    处理文本或文件; 编程语言的分类        根据运行方式:        编译运行:源代码-->编译器(编译)-->程序文件        解释运行:源代码-->运行时启动解释器,由解释器边解释边运行  

Ubuntu下一个脚本关于键盘背光灯开启

首先我在学习Ubuntu 系统的过程中,发现我的键盘背光灯永远无法打开,(通过Scroll Lock); 所以上网百度了一个方法,通过一个脚本命令来控制键盘背光灯,(第一次接触脚本) 1.第一步打开终端通过vim 命令直接创建一个名为led.sh的脚本文件(默认读者会vim) 将下面这段脚本代码复制进去 #!/bin/bash - #=============================================================================== #

Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)

Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins.Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline. 对于单个项目来说,使用这样的Pipeline来构建能够满足绝大部分需求,但是这样做也有很多缺陷,包括: 多个项目的Pipeline打包脚本不能公用,导致一个项目写一份脚本,维护比较麻烦.Jenkins提供了一个更优雅的管理Pipeline脚本的方式,在配置项目Pipeline的时候

今天中了一个脚本病毒。把我的所有 html 加了 vbs 脚本,WriteData 是什么鬼?

今天中了一个脚本病毒.把我的所有 html 加了 vbs 脚本: WriteData 是什么鬼? <SCRIPT Language=VBScript><!-- DropFileName = "svchost.exe" WriteData = "4D5A90000300000004000000FFFF0000B8000000000000004000000000000000000000000000000000000000000000000000000000000

小问题不简单,一个无线故障的排查过程

本文不是为了说明解决了多难的问题,而是提供了查找app连接服务端的问题的几种解决问题的思路和方法 研发人员反映有个手机app业务在3G网络下刷新不了,是连接的测试环境的服务,通过办公网和wifi正常. 研发认为可能是在3G网络或者是服务器所在IDC机房问题,问题出现有一段时间了. 真这么神奇?专治疑难杂症30年的我得查查- 找来一台andriod手机,root过的,安装ssh终端模拟器app,希望直接连接网络进行测试. 发现能ping ,说明网络是通的,不能telnet服务端口. 想通过curl

Shell脚本中调用另外一个脚本的方法

在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh 或 source my.sh 或 . my.sh:这三种方法有什么不同呢?我们先来了解一下在一个shell脚本中如何调用另外一个shell脚本,其方法有 fork    exec    source. 1.fork  ( /directory/script.sh) : 如果shell中包含执行命令,那么子命令并不影响父级的命令,在子命令执行完后再执行父级命令.子级的环境变量不会影响到父

一个快速、完善的Android开发框架整合实践(QuickAndroid)

https://github.com/alafighting/QuickAndroid QuickAndroid 一个快速.完善的Android开发框架整合实践 QA项目简介 本框架QuickAndroid(以下简称:QA)尚处于开发阶段. 本项目的宗旨是:整合一个快速.完善的Android开发框架. 编译工具使用:Eclipse + ADT + Android SDK: 编译环境是Android 5.0(21),最低支持Android 2.2(8): 项目编码采用:UTF-8,源码带有中文注释