1、SHELL编程For语句案例实战
1)For语句固定的语法格式:
  1. For i in (表达式)
  2. do
  3. 动作1
  4. done
2)For语句案例操作一:
  1. #!/bin/bash
  2.  
  3. do
  4. echo $NUM) www.jd.com
  5. done
3)For语句案例操作二:
  1. #!/bin/bash
  2. ..})
  3. do
  4. echo $NUM) www.jd.com
  5. done
4)For语句案例操作三:
  1. #!/bin/bash
  2. COMMAND=.{..}
  3. do
  4. echo -e "\033[32mThe $IP Exec Command:\033[0m"
  5. ssh -l root $IP "$COMMAND"
  6. scp -r jfedu.txt root@$IP:/data/backup/
  7. done
5)For语句案例操作四:
  1. #!/bin/bash
  2. for LOG in `ls access_2019*`
  3. do
  4. echo $LOG
  5. tar -czvf ${LOG}.tar.gz $LOG
  6. if [ ! -d /data/backup/`date +%F` ];then
  7. mkdir -p /data/backup/`date +%F`
  8. fi
  9. mv ${LOG}.tar.gz /data/backup/`date +%F`
  10. rm -rf $LOG
  11. done
6)For语句案例操作五:
  1. #!/bin/bash
  2. --/*`
  3. doecho $LOG
  4. tar -xzf $LOG -C /data/logs/linux_web/
  5. done
7)For循环打印10秒等待提示:
  1. ;j<=;j++))
  2. do
  3. echo -ne "\033[32m-\033[0m"
  4.  
  5. done
  6. echo
2、SHELL编程While语句案例实战
1)While语句固定的语法格式:
  1. While (表达式|条件)
  2. do
  3. 动作1
  4. done
(1) 循环打印BAT企业官网,read指令用于读取行或者读取变量:
  1. #!/bin/bash
  2. #By author jfedu.net
  3. while read LINE
  4. do
  5. echo $LINEdone <jfedu.txt
其中jfedu.txt内容为:
www.baidu.com
www.taobao.com
www.qq.com
(2) While无限每秒输出Hello World:
  1. #!/bin/bash
  2. #By author jfedu.net
  3.  
  4. do
  5. echo -e "\033[32mHello World.\033[0m"
  6. done
(3) 循环打印1至100数字,expr用于运算逻辑工具:
  1. #!/bin/bash
  2. #By author jfedu.net
  3. i=
  4. ))
  5. do
  6. echo $i
  7. i=``
  8. done
(4) While循环求1-100的总和:#!/bin/bash
  1. #By author jfedu.net
  2. #auto
  3. j=
  4. i=
  5. ))
  6. do
  7. j=`expr $i + $j`
  8. ((i++))
  9. done
  10. echo $j
(5) While循环逐行读取文件:
  1. #!/bin/bash
  2. #By author jfedu.net
  3. while read line
  4. do
  5. echo $line;
  6. done < /etc/hosts
(6) While循环判断输入数字是否大于100(IP正确性类似的),如果小于一
直提示其输入,直到正确为止:
  1. #!/bin/bash
  2. while truedo
  3. read -p "Please input A Number:" INPUT
  4. ];then
  5. echo $INPUT
  6. break;
  7. fi
  8. done
(7) 每5秒循环判断/etc/passwd是否被非法修改:
  1. #!/bin/bash
  2. #Check File to change.
  3. #By author jfedu.net
  4. FILES="/etc/passwd"
  5. while true
  6. do
  7. echo "The Time is `date +%F-%T`"
  8. OLD=`md5sum $FILES|`
  9.  
  10. NEW=`md5sum $FILES|`
  11. if [[ $OLD != $NEW ]];then
  12. echo "The $FILES has been modified."
  13. fi
  14. done
(8) 每10秒判断jfedu用户是否登录系统:
  1. #!/bin/bash
  2. while true
  3. do
  4. USER=$*
  5. echo -e "\033[32m`date`\033[0m"
  6. for i in $USER
  7. do
  8. NUM=$(who|grep $i|wc -l)
  9. ];then
  10. echo "The $i is Login Linux System."
  11. fi
  12. done
  13. echo "--------------------"
  14.  
  15. done
3、SHELL编程实战MYSQL数据库备份脚本
 备份脚本实现任意单个库的备份;
  1. #!/bin/bash
  2. #2019年7月6日15::
  3. #auto backup mysql database.
  4. #by author www.jfedu.net####################
  5. SQL_USR="backup"
  6. SQL_PWD="backup"
  7. SQL_DB="$1"
  8. SQL_DIR="/data/backup/$(date +%F)"
  9. SQL_CMD="/usr/bin/mysqldump"
  10. -o "$1" == "help" ];then
  11. echo -e "\033[32m----------------\033[0m"
  12. echo -e "\033[32mUsage:{/bin/bash $0
  13. jfedu1|www|jfedu2|help}\[0m"
  14. exit
  15. fi
  16. if [ ! -d $SQL_DIR ];then
  17. mkdir -p $SQL_DIR
  18. fi
  19. $SQL_CMD -u$SQL_USR -p$SQL_PWD $SQL_DB >
  20. $SQL_DIR/${SQL_DB}.sql
  21. ];then
  22. echo -e "\033[32mThe MYSQL $SQL_DB backup
  23. success.\[0m"
  24. echo "----------------"
  25. echo "ls -l $SQL_DIR/"ls -l $SQL_DIR/
  26. else
  27. rm -rf $SQL_DIR/${SQL_DB}.sql
  28. echo -e "\033[32mThe MYSQL $SQL_DB backup
  29. Failed.\[0m"
  30. exit
  31. fi
 备份脚本实现任意多个库备份;
  1. #!/bin/bash
  2. #2019年7月6日15::
  3. #auto backup mysql database.
  4. #by author www.jfedu.net
  5. ####################
  6. SQL_USR="backup"
  7. SQL_PWD="backup"
  8. SQL_DB="$*"
  9. SQL_DIR="/data/backup/$(date +%F)"
  10. SQL_CMD="/usr/bin/mysqldump"
  11. -o "$1" == "help" ];then
  12. echo -e "\033[32m----------------\033[0m"
  13. echo -e "\033[32mUsage:{/bin/bash $0
  14. jfedu1|www|jfedu2|help}\[0m"exit 1
  15. fi
  16. if [ ! -d $SQL_DIR ];then
  17. mkdir -p $SQL_DIR
  18. fi
  19. for SQL_DB in `echo $SQL_DB`
  20. do
  21. $SQL_CMD -u$SQL_USR -p$SQL_PWD $SQL_DB >
  22. $SQL_DIR/${SQL_DB}.sql
  23. ];then
  24. echo -e "\033[32mThe MYSQL $SQL_DB backup
  25. success.\[0m"
  26. echo "----------------"
  27. echo "ls -l $SQL_DIR/"
  28. ls -l $SQL_DIR/
  29. else
  30. rm -rf $SQL_DIR/${SQL_DB}.sql
  31. echo -e "\033[32mThe MYSQL $SQL_DB backup
  32. Failed.\[0m"
  33. exit
  34. fi
  35. done
 备份脚本实现所有数据库的备份;
  1. #!/bin/bash
  2. #2019年7月6日15::
  3. #auto backup mysql database.
  4. #by author www.jfedu.net
  5. #########################
  6. SQL_USR="backup"
  7. SQL_PWD="backup"
  8. SQL_DB="$*"
  9. SQL_DIR="/data/backup/$(date +%F)"
  10. SQL_CMD="/usr/bin/mysqldump"
  11. -o "$1" == "help" ];then
  12. echo -e "\033[32m----------------\033[0m"
  13. echo -e "\033[32mUsage:{/bin/bash $0
  14. jfedu1|www|jfedu2|help}\[0m"
  15. exit
  16. fi
  17. if [ ! -d $SQL_DIR ];then
  18. mkdir -p $SQL_DIR
  19. fi
  20. for SQL_DB in `echo $SQL_DB`do
  21. if [ "$SQL_DB" == "all" ];then
  22. $SQL_CMD -u$SQL_USR -p$SQL_PWD
  23. --all-databases > $SQL_DIR/${SQL_DB}.sql
  24. ];then
  25. echo -e "\033[32mThe MYSQL $SQL_DB
  26. backup success.\[0m"
  27. echo "----------------"
  28. echo "ls -l $SQL_DIR/"
  29. ls -l $SQL_DIR/
  30. continue
  31. else
  32. rm -rf $SQL_DIR/${SQL_DB}.sql
  33. echo -e "\033[32mThe MYSQL $SQL_DB
  34. backup Failed.\[0m"
  35. exit
  36. fi
  37. fi
  38. $SQL_CMD -u$SQL_USR -p$SQL_PWD $SQL_DB >
  39. $SQL_DIR/${SQL_DB}.sql
  40. ];then
  41. echo -e "\033[32mThe MYSQL $SQL_DB backupsuccess.\033[0m"
  42. echo "----------------"
  43. echo "ls -l $SQL_DIR/"
  44. ls -l $SQL_DIR/
  45. else
  46. rm -rf $SQL_DIR/${SQL_DB}.sql
  47. echo -e "\033[32mThe MYSQL $SQL_DB backup
  48. Failed.\[0m"
  49. exit
  50. fi
  51. done
4、SHELL编程实战Linux系统IP修改脚本
 能够将动态IP修改为静态IP;
  1. #!/bin/bash
  2. #2019年7月6日16::
  3. #auto change server ip.
  4. #by author www.jfedu.net
  5. ####################
  6. ETH_IPADDR="$1"
  7. GATEWAY="10.10.10.1"
  8. DNS_SERVER="8.8.8.8"ETH_NAME="ifcfg-ens33"
  9. NETMASK="255.255.255.0"
  10. ETH_BAK="/data/backup/`date +%F`"
  11. ETH_DIR="/etc/sysconfig/network-scripts"
  12. ];then
  13. echo -e "\033[32m---------------\033[0m"
  14. echo -e "\033[32mUsage:{/bin/bash $0
  15. [0m"
  16. exit
  17. fi
  18. if [ ! -d $ETH_BAK ];then
  19. mkdir -p $ETH_BAK
  20. fi
  21. cd $ETH_DIR
  22. cp $ETH_NAME $ETH_BAK
  23. grep "dhcp" $ETH_NAME
  24. ];then
  25. echo "TYPE=\"Ethernet\"
  26. BOOTPROTO=\"static\"
  27. NAME=\"ens33\"
  28. DEVICE=\"ens33\"
  29. ONBOOT=\"yes\"">$ETH_NAMEecho "IPADDR=$ETH_IPADDR" >>$ETH_NAME
  30. echo "NETMASK=$NETMASK" >>$ETH_NAME
  31. echo "GATEWAY=$GATEWAY" >>$ETH_NAME
  32. echo "DNS1=$DNS_SERVER" >>$ETH_NAME
  33. fi
 能够实现本身静态IP,修改为其他静态IP;
  1. #!/bin/bash
  2. #2019年7月6日16::
  3. #auto change server ip.
  4. #by author www.jfedu.net
  5. ####################
  6. ETH_IPADDR="$1"
  7. GATEWAY="10.10.10.1"
  8. DNS_SERVER="8.8.8.8"
  9. ETH_NAME="ifcfg-ens33"
  10. NETMASK="255.255.255.0"
  11. ETH_BAK="/data/backup/`date +%F`"
  12. ETH_DIR="/etc/sysconfig/network-scripts"
  13. ];then
  14. echo -e "\033[32m---------------\033[0m"
  15. echo -e "\033[32mUsage:{/bin/bash $0
  16. [0m"exit 1
  17. fi
  18. if [ ! -d $ETH_BAK ];then
  19. mkdir -p $ETH_BAK
  20. fi
  21. cd $ETH_DIR
  22. cp $ETH_NAME $ETH_BAK
  23. echo "TYPE=\"Ethernet\"
  24. BOOTPROTO=\"static\"
  25. NAME=\"ens33\"
  26. DEVICE=\"ens33\"
  27. ONBOOT=\"yes\"">$ETH_NAME
  28. echo "IPADDR=$ETH_IPADDR" >>$ETH_NAME
  29. echo "NETMASK=$NETMASK" >>$ETH_NAME
  30. echo "GATEWAY=$GATEWAY" >>$ETH_NAME
  31. echo "DNS1=$DNS_SERVER" >>$ETH_NAME
 判断用户输入的IP是否正确;
  1. #!/bin/bash
  2. #2019年7月6日16::
  3. #auto change server ip.
  4. #by author www.jfedu.net
  5. ####################GATEWAY="10.10.10.1"
  6. DNS_SERVER="8.8.8.8"
  7. ETH_NAME="ifcfg-ens33"
  8. NETMASK="255.255.255.0"
  9. ETH_BAK="/data/backup/`date +%F`"
  10. ETH_DIR="/etc/sysconfig/network-scripts"
  11. if [ ! -d $ETH_BAK ];then
  12. mkdir -p $ETH_BAK
  13. fi
  14. while true
  15. do
  16. read -p "Please Input Server IPaddr: " ETH_IPADDR
  17. if [ ! -z $ETH_IPADDR ];then
  18. IP1=``
  19. IP2=``
  20. IP3=``
  21. IP4=``
  22. -a $IP1 -le -a $IP2 -ge -a $IP2 -le -a $IP3 -ge
  23. -a $IP3 -le -a $IP4 -ge -a $IP1 -le ];then
  24. ETH_IPADDR=$ETH_IPADDR
  25. break
  26. fifi
  27. done
  28. cd $ETH_DIR
  29. cp $ETH_NAME $ETH_BAK
  30. echo "TYPE=\"Ethernet\"
  31. BOOTPROTO=\"static\"
  32. NAME=\"ens33\"
  33. DEVICE=\"ens33\"
  34. ONBOOT=\"yes\"">$ETH_NAME
  35. echo "IPADDR=$ETH_IPADDR" >>$ETH_NAME
  36. echo "NETMASK=$NETMASK" >>$ETH_NAME
  37. echo "GATEWAY=$GATEWAY" >>$ETH_NAME
  38. echo "DNS1=$DNS_SERVER" >>$ETH_NAME
  39. ];then
  40. echo
  41. echo "cat $ETH_DIR/$ETH_NAME"
  42. cat $ETH_DIR/$ETH_NAME
  43. echo "----------------"
  44. echo -e "\033[32mThe Server IPaddr config success.\033[0m"
  45. else
  46. echo
  47. echo -e "\033[32mThe Server IPaddr config Failed.\033[0m"exit
  48. fi

SHELL用法四(for语句)的更多相关文章

  1. SHELL用法七(Sed语句)

    1.SHELL编程Sed语句案例实战 1)SHELL编程四剑客之二的Sed工具,主要是用于Linux系统文本文件的编辑. 打印的,也称为非交互模式编辑器(vi|vim交互模式编辑器),Sed工具的语法 ...

  2. SHELL用法六(Find语句)

    1.SHELL编程Find语句案例实战 1)SHELL编程四剑客工具:Find.Grep.Sed.Awk,通过四剑客可以完成常规Linux指令无法完成或者比较复杂的功能,学好SHELL编程四剑客有助于 ...

  3. SHELL用法五(Case语句)

    1.SHELL编程Case语句案例实战 1)Case选择条件语句的格式: case $INPUT in Pattern1) 语句1 ;; Pattern2) 语句2 ;; esac 2)Case语句企 ...

  4. Shell编程之循环语句与echo的用法

    Shell编程之循环语句与echo的用法 目录 Shell编程之循环语句与echo的用法 一.echo用法 1. echo常用选项 2. 常用的转义字符 3. 特殊符号%.#的用法 二.循环语句 1. ...

  5. Shell编程四剑客包括:find、sed、grep、awk

    一.Shell编程四剑客之Find Find工具主要用于操作系统文件.目录的查找,其语法参数格式为: find path -option [ -print ] [ -exec -ok command ...

  6. shell 脚本之判断语句 if 详解

    使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉.其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能.这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下 ...

  7. shell脚本-循环选择语句

    shell脚本-循环选择语句 过程式编程语言: 顺序执行 选择执行 循环执行 注:条件中的变量,可以在执行语句中使用,不用在加上"$". if语句 根据命令的退出状态来执行命令 单 ...

  8. shell 编程四剑客简介 find sed grep awk(微信公众号摘抄)

    一,Shell编程四剑客之Find 通过如上基础语法的学习,读者对Shell编程有了更近一步的理解,Shell编程不再是简单命令的堆积,而是演变成了各种特殊的语句.各种语法.编程工具.各种命令的集合. ...

  9. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

随机推荐

  1. 配置window下python3环境

    功能介绍 整理生信小知识库,一些技巧一些知识. 昨天 以下配置环境基于window操作系统,安装python3版本为例,推荐基础版配置. !   METHOD 1 (基础版) 官网下载对应电脑版本的p ...

  2. python 文件练习

    # 注册:# 1.账号.密码存到文件# 2.判断输入是否为空# 3.校验用户是否存在# 4.用户名和密码长度在6-12位之间#将文件读取到字典中def get_users(): f = open('1 ...

  3. EXCEL快速实现下拉计算快捷键

    ctrl + shift + 方向键,,选择要填充的范围,,然后ctrl + d

  4. 寒假day01-Spring框架

    1.什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE D ...

  5. classification.py

    # -*- coding: utf-8 -*-"""View more, visit my tutorial page: https://morvanzhou.githu ...

  6. split - 拆分文件

    拆分文件 # 每个文件的行数为1000行 split -l 1000 test.txt # 将test文件拆分,20M一个文件 split -b 20M test.txt test文件拆分,并且文件名 ...

  7. html 基础笔记

    html 1,一套规则,浏览器认识的规则 2,开发者: 学习Html规则 开发后台程序: -写Html文件(充当模板的作用) -数据库获取数据,然后替换到html文件的指定位置(web框架) 3,本地 ...

  8. UML-各阶段如何编写用例

    1.前文回顾 用例的根本价值:发现谁是关键参与者,他要实现什么目标? 需求分类,见<进化式需求>:制品,见<初始不是需求阶段>中的表4-1 2.各阶段编写何种用例,均针对下图展 ...

  9. 搭建WordPress个人博客

    1. 准备LNMP环境 LNMP 是 Linux.Nginx.MySQL 和 PHP 的缩写,是 WordPress 博客系统依赖的基础运行环境.我们先来准备 LNMP 环境 安装Nginx 使用 y ...

  10. 05 - Tomcat 线程池的配置与优化

    添加 Executor 在server.xml中的Service节点里面,增加executor节点,然后配置connector的executor属性,如下: <Executor name=&qu ...