(1)语法

(2)批量ping主机

这里有个重点就是把每次ping主机的动作放到后台运行

#!/bin/bash
>ip.txt
for i in {1..254}
do
ip=192.168.111.$i
{
ping -c1 -W1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo "$ip is up!" | tee -a ip.txt
fi
}&
done
wait
echo "success"

(2)用户创建

重点:seq -w 10 会生成例如 01 02,前面使用0填充

#!/bin/bash
while true
do
read -p "please input prefix password number[bob 123456 10]" prefix password number
printf "user information:
----------------------------------
user prefix:$prefix
user password:$password
user number:$number
----------------------------------
"
read -p "Are you sure?[y|n]" action
if [ "$action" = y ];then
break
fi
done
for i in $(seq -w $number)
do
user=$prefix$i
id $user &>/dev/null
if [ $? -eq 0 ];then
echo "user $user is already exist!"
else
useradd $user
echo "$password" | passwd --stdin $user &>/dev/null
if [ $? -eq 0 ];then
echo "user $user is created!"
fi
fi
done

(3)实现文件中批量创建用户

重点:默认for循环是根据空白或tab键进行分割,这样对文件进行for循环,例如文件内容(jack01 123) 会把这一行当成两行内容,解决方案:使用IFS变量重新定义分割符

IFS=$'\n'

#!/bin/bash

if [ $# -eq 0 ];then
echo "Usage: $(basename $0) file"
exit 1
fi
if [ ! -f $1 ];then
echo "error file!"
exit 2
fi
#希望for处理文件按回车分隔,而不是空格或tab空格
#重新定义分割符
#IFS=$'\n'
IFS=$'\n'
for line in $(cat $1)
do
user=$(echo $line |awk '{print $1}')
pass=$(echo $line |awk '{print $2}')
id $user &>/dev/null
if [ $? -eq 0 ];then
echo "user $user is already exists!"
else
useradd $user &>/dev/null
echo "$pass" | passwd --stdin $user
if [ $? -eq 0 ];then
echo "$user is created!"
fi
fi
done

用户文件内容如下,第一列是用户名,第二列是用户密码

jack01 123
jack02 456
jack03 789

(八)for语句的更多相关文章

  1. iOS中数据库应用基础

    iOS 数据库入门 一.数据库简介 1.什么是数据库? 数据库(Database) 是按照数据结构来组织,存储和管理数据的仓库 数据库可以分为2大种类 关系型数据库(主流) PC端 Oracle My ...

  2. 深入研究C语言 第一篇(续)

    没有读过第一篇的读者,可以点击这里,阅读深入研究C语言的第一篇. 问题一:如何打印变量的地址? 我们用取地址符&,可以取到变量的偏移地址,用DS可以取到变量的段地址. 1.全局变量: 我们看到 ...

  3. C Primer Plus(第五版)2

    在本章中你将学习下列内容------------------------------------------------------------------1.运算符:= 2.函数:main(),pr ...

  4. 存储过程学习笔记(SQL数据库

    一.   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程 ...

  5. N元模型

    在自然语言处理的任务中,拼音纠错.机器翻译等任务都需要对某个句子的下一个单词进行预测,或者评估某个句子的概率大小.例如预测如下句子的下一个单词: Please turn your home work. ...

  6. JavaScript初探系列之基本概念

    JavaScript的核心语言特性在ECMA-262中是以名为ECMAScript(ECMA, EuropeanComputer Manufacturers Association )的伪语言的形式来 ...

  7. js 流程控制语句

    1.复合语句 2.switch语句 3.do...while语句 4.while语句 5.for语句 6.for...in语句 7.break和continue语句 9.with语句 10.if语句 ...

  8. python_1基础学习

    2017年12月02日 20:14:48 独行侠的守望 阅读数:221 标签: python 更多个人分类: Python编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://blo ...

  9. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  10. whdxlib

    1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...

随机推荐

  1. mysql yearweek修改开始日期

    MySQL 的yearweek函数默认是从周日~周六,需求需要从周一到周日,看了MySQL的文档后,按照如下使用即可更改开始日期. http://dev.mysql.com/doc/refman/5. ...

  2. [Leetcode] remove nth node from the end of list 删除链表倒数第n各节点

    Given a linked list, remove the n th node from the end of list and return its head. For example, Giv ...

  3. SCOI2008奖励关 [状压dp]

    题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再 ...

  4. Codeforces Round #515 (Div. 3) E. Binary Numbers AND Sum

    E. Binary Numbers AND Sum 题目链接:https://codeforces.com/contest/1066/problem/E 题意: 给出两个用二进制表示的数,然后将第二个 ...

  5. 买卖股票的最佳时机 [ leetcode ]

    原题地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ 给定一个数组,它的第 i 个 ...

  6. 定时导出用户数据(expdp,impdp)

    一 定时导出数据: #!/bin/bash############################################################################### ...

  7. express添加拦截器

    var express = require('express')   , routes = require('./routes')   , http = require('http')   , pat ...

  8. Hibernate 懒加载 错误----no session

    错误: unable to evaluate the expression Method threw 'org.hibernate.LazyInitializa org.hibernate.LazyI ...

  9. eclipse更改web项目的WebContent目录

    在使用eclipse 中 , 相信大家比我更是轻车熟路了 ( 我平常一般用 Intellij idea 的 ), 下面讲解一下在eclipse web项目中 , 如何设置 webroot 目录指向问题 ...

  10. shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)

    文本处理三剑客:1.grep  2.sed  3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n  :显示行号:-o  :只显示匹配的内容-q  :静默模式,没有任何输出,得用e ...