两个实用的shell脚本实例菜鸟教程_脚本教程视频

今天主要分享两个shell脚本实例,内容不重要,重点是看如何去实现。1. 批量创建特殊要求用户需求:批量创建10个系统帐号hwb01-hwb10并设置密码(密码为随机数,要求字符和数字等混合)。脚本:#!/bin/bash
#############################################################
# Fi

两个实用的shell脚本实例菜鸟教程

今天主要分享两个shell脚本实例,内容不重要,重点是看如何去实现。

两个实用的shell脚本实例菜鸟教程_脚本教程视频

1. 批量创建特殊要求用户

需求:批量创建10个系统帐号hwb01-hwb10并设置密码(密码为随机数,要求字符和数字等混合)。

脚本:

#!/bin/bash 
############################################################# 
# File Name: add_user.sh 
############################################################# 
​ 
Passwd_File=/tmp/`uuidgen`.txt 
>$Passwd_File 
chmod 400 $Passwd_File 
​ 
for i in hwb{01..10} 
 do 
 userdel -r "$i" &>/dev/null 
 id $i &>/dev/null 
 if [ $? -ne 0 ] 
 then 
 useradd $i 
 PassWd=`uuidgen` 
 echo $PassWd |passwd --stdin $i &>/dev/null 
 echo "用户名:$i 密码:$PassWd" >>$Passwd_File 
 echo -e "\033[32m $i 用户创建成功!\033[0m" 
 else  
 echo "$i 用户已存在" 
 fi 
 if [ "$i" == "hwb10" ]  
 then 
 echo "用户密码请查看文件 $Passwd_File" 
 fi 
done

ps:批量创建用户并设置随机密码(不使用shell循环)

方法一:

echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \1 \&\& echo \1 >>/tmp/passwd.txt \&\& echo $RANDOM |md5sum |cut -c 1-5>>/tmp/passwd.txt \&\& echo `tail -1 /tmp/passwd.txt`|passwd --stdin \1#g'|bash

方法二:

echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \1 \&\& pass=`echo $RANDOM |md5sum |cut -c 1-5` \&\& echo $pass |passwd --stdin \1 \&\& echo \1 $pass>>/tmp/user_passwd.txt#g'|bash

方法三:

echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \1 \&\& pass=`echo $RANDOM |md5sum |cut -c 1-5` \&\& echo \1:$pass>>/tmp/user_passwd.txt \&\& chpasswd</tmp/user_passwd.txt#g'|bash

2. 筛选符合长度的单词

利用bash for循环打印下面这句话中字母数不大于6的单词(某企业面试真题)。

脚本:

#!/bin/bash 
############################################################# 
# File Name: changdu.sh 
############################################################# 
Word='I am hwb Welcome to my toutiao https://mp.toutiao.com/profile_v3/index' 
​ 
for i in $Word 
 do  
 #[ ${#i} -le 6 ] && echo $i #子串方法 
 a=`echo $i |wc -L` 
 if [ $a -le 6 ] 
 then  
 echo $i 
 fi 
done
海计划公众号
(0)
上一篇 2020/03/23 08:58
下一篇 2020/03/23 08:58

您可能感兴趣的内容

  • 站长之家基础知识_为站长提供常用站长工具

    站长之家基础知识 官方网址:http://www.webmasterhome.cn/ 简介描述:为站长提供常用站长工具 站长之家提供网站综合信息查询,包括搜索引擎收录查询,反向链接…

    2020/03/06
  • EnjoyCSS入门攻略在线CSS代码可视化工具

    EnjoyCSS基础入门 官方网址:http://enjoycss.com/ 简介描述:在线CSS代码可视化工具 EnjoyCSS:在线CSS代码可视化工具是一个在线版的CSS3代…

    2020/03/06
  • vue开发中的几个高级应用菜鸟指南_应用入门基础教程

    vue开发中的几个高级应用菜鸟指南 Vue.use 我们使用的第三方 Vue.js 插件。如果插件是一个对象,必须提供install方法。如果插件是一个函数,它会被作为instal…

    2020/03/20
  • pdfmake.js菜鸟指南_一个简单的生成pdf文件的插件

    pdfmake.js菜鸟指南 官方网址:http://pdfmake.org GitHub:https://github.com/bpampuch/pdfmake 简介描述:一个简…

    2020/03/06
  • JS中一定要了解的数据类型和数据转换 使用指南_类型使用帮助

    一、数据类型前言Js中的类型只有6种,其中基本数据类型有5种分别为string,number,boolen,null,undefined,引用类型有一种,就是object,object是一个大的综合体,在JS中除了那5个基本数据类型以外,其他的一切皆对象。以下是最近自学js整理的一些笔记,希望能让更多初学者了解到数据类型的基本概念。 正文1.获取变量类型t

    2020/03/23
  • Js数组去重方法及效率对比菜鸟知识_数组入门基础教程

    前言其实网上搜索这些方法一堆堆的,之所以还来写一遍主要是因为自己习惯一种之后就忘了其他方法怎么实现,就写一写总结一下,顺便做个测试看看哪个效率最高,为了更好展示效果,我会先总结认为比较好的方法,后面统一测试。(温馨提示:下文衹是为了简便,一般情况下不建议写在原型上,容易污染全局)一,通过寻找对象属性var ary = [14, 12, 2, 2, 2, 5,

    2020/03/29
  • ES6中箭头函数小白攻略_函数入门百科

    基本用法ES6 允许使用“箭头”(=>)定义函数。var f = v => v;
    // 等同于
    var f = function (v) {return v;
    };如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5;
    // 等同于
    var f = function () { return 5 };
    var su

    2020/03/26
  • Less导入选项使用帮助_Less小白基础

    Less 提供了CSS @import CSS规则的几个扩展,以提供更多的灵活性来处理外部文件。语法: @import (keyword) “filename”;以下是导入指令的相关详情:reference,使用较少的文件但不输出。inline,在输出中包含源文件,但不对其进行处理。less,无论文件扩展名为什么,都将其视为less文件。css,无论文件扩展

    2020/03/23
  • 如何撸一个前端脚手架基础知识_脚手架入门教程

    脚手架vue-cli, create-react-app、react-native-cli 等都是非常优秀的脚手架,通过脚手架,我们可以快速初始化一个项目,无需自己从零开始一步步配置,有效提升开发体验。尽管这些脚手架非常优秀,但是未必是符合我们的实际应用的,我们可以定制一个属于自己的脚手架(或公司通用脚手架),来提升自己的开发效率。脚手架的作用减少重复性的工

    2020/03/29
  • 各大高校女生节横幅来袭,个个都是段子手零基础入门_段子菜鸟指南

    啊,又是一年女生节,又到了朋友圈刷各种标语的时候了。在这里,首先要祝全国过女生节的妹子们开心快乐,学业/工作进步,永远健康美丽,心想事成!一年一度的女生节,又号称一年一度的男生横幅节,又号称年度段子展览节,每年看着各大院校风采各异的横幅,一天的快乐能量就这么攒齐了。戳图↓↓感受一下今日份各高校的女生节横幅!首先是来自南京大学计科、计金专业的祝福表白什么的,信

    2020/03/31
  • compromise指南攻略_开源的,基于 JavaScript 的自然语言处理库

    compromise指南攻略 官方网址:http://compromise.cool GitHub:https://github.com/spencermountain/compr…

    2020/03/07
  • Next.js应用生成 robots.txt 和 sitemap.xml入门基础知识_next小白知识

    为了优化 SEO,生成 robots.txt 和 sitemap.xml 是必不可少的功能。
    Next.js 自身并不提供生成 robots.txt 和 sitemap.xml 的特性,所以需要自己实现。Server Side Render(SSR)sitemap.xml.js在 pages/ 目录下创建 sitemap.xml.js。当浏览器访问 http

    2020/03/24
  • HTML5的<progress>标签怎么用?使用攻略_标签使用攻略

    标签表示任务的进度(进程),例:可定义完成多少工作,还有多少工作可以下载等等。该标签可与JavaScript结合使用,来显示任务的进度,创建动态的进度条。注释: 标签不适合用来表示度量衡(例如,磁盘空间使用情况或查询结果)。如需表示度量衡,请使用 标签代替。语法:<progress value=""

    2020/03/26
  • 你可能不知道的一些css小知识入门教程_知识小白知识

    css是一门功能强大、具备完整生态的复杂语言。它拥有很多的技巧, 但是生活工作中我们可能不怎么会接触到,这包括一些实际上挺实用的技巧。在此,特地列举一些css里比较容被忽略的小知识,希望能对你有所帮助。1. 椭圆的实现跟圆形的实现一样,这里也是用到border-radius属性,但是你可能不知道,border-radius是一个简写属性, border-ra

    2020/03/26
  • 使用nodejs编写命令行工具小白指南编写自己的cli工具_cli攻略教程

    工作中接到新项目,开发前都需要先规划项目目录,然后一个个创建文件,搭建sass编译环境,下载jquery,Swiper等类库… 这些准备工作都要花上不少时间。每做一个项目,都会遇到同样的问题,再重复一遍吗?是时候做点改变了:编写自己的cli工具,一行命令,3秒钟进入coding状态!本文以自己的my-cli为例,将开发到发布过程完整记录下来,看完本文,你

    2020/04/05
  • 使用jenkins进行前端项目自动部署小白指南_前端作者: 小火柴的蓝色理想使用说明

    原文来源:https://www.cnblogs.com/xiaohuochai/archive/2018/05/28/9096873.html前面的话  后端的nodeJS项目可以使用pm2进行自动部署,由于前端项目打包后是静态资源,不需要进程守护。一般地,前端项目使用jenkins来进行自动部署,包括打包、测试等一系列流程。本文将详细介绍jenkins的

    2020/04/05