1、SHELL编程For语句案例实战
1)For语句固定的语法格式:
For i in (表达式)
do
动作1
done
2)For语句案例操作一:
#!/bin/bash

do
echo “$NUM) www.jd.com”
done
3)For语句案例操作二:
#!/bin/bash
..})
do
echo “$NUM) www.jd.com”
done
4)For语句案例操作三:
#!/bin/bash
COMMAND=.{..}
do
echo -e "\033[32mThe $IP Exec Command:\033[0m"
ssh -l root $IP "$COMMAND"
scp -r jfedu.txt root@$IP:/data/backup/
done
5)For语句案例操作四:
#!/bin/bash
for LOG in `ls access_2019*`
do
echo $LOG
tar -czvf ${LOG}.tar.gz $LOG
if [ ! -d /data/backup/`date +%F` ];then
mkdir -p /data/backup/`date +%F`
fi
mv ${LOG}.tar.gz /data/backup/`date +%F`
rm -rf $LOG
done
6)For语句案例操作五:
#!/bin/bash
--/*`
doecho $LOG
tar -xzf $LOG -C /data/logs/linux_web/
done
7)For循环打印10秒等待提示:
;j<=;j++))
do
echo -ne "\033[32m-\033[0m"

done
echo
2、SHELL编程While语句案例实战
1)While语句固定的语法格式:
While (表达式|条件)
do
动作1
done
(1) 循环打印BAT企业官网,read指令用于读取行或者读取变量:
#!/bin/bash
#By author jfedu.net
while read LINE
do
echo $LINEdone <jfedu.txt
其中jfedu.txt内容为:
www.baidu.com
www.taobao.com
www.qq.com
(2) While无限每秒输出Hello World:
#!/bin/bash
#By author jfedu.net 

do
echo -e "\033[32mHello World.\033[0m"
done
(3) 循环打印1至100数字,expr用于运算逻辑工具:
#!/bin/bash
#By author jfedu.net
i=
))
do
echo $i
i=``
done
(4) While循环求1-100的总和:#!/bin/bash
#By author jfedu.net
#auto
j=
i=
))
do
j=`expr $i + $j`
((i++))
done
echo $j
(5) While循环逐行读取文件:
#!/bin/bash
#By author jfedu.net
while read line
do
echo $line;
done < /etc/hosts
(6) While循环判断输入数字是否大于100(IP正确性类似的),如果小于一
直提示其输入,直到正确为止:
#!/bin/bash
while truedo
read -p "Please input A Number:" INPUT
 ];then
echo $INPUT
break;
fi
done
(7) 每5秒循环判断/etc/passwd是否被非法修改:
#!/bin/bash
#Check File to change.
#By author jfedu.net
FILES="/etc/passwd"
while true
do
echo "The Time is `date +%F-%T`"
OLD=`md5sum $FILES|`

NEW=`md5sum $FILES|`
if [[ $OLD != $NEW ]];then
echo "The $FILES has been modified."
fi
done
(8) 每10秒判断jfedu用户是否登录系统:
#!/bin/bash
while true
do
USER=$*
echo -e "\033[32m`date`\033[0m"
for i in $USER
do
NUM=$(who|grep $i|wc -l)
 ];then
echo "The $i is Login Linux System."
fi
done
echo "--------------------"

done
3、SHELL编程实战MYSQL数据库备份脚本
 备份脚本实现任意单个库的备份;
#!/bin/bash
#2019年7月6日15::
#auto backup mysql database.
#by author www.jfedu.net####################
SQL_USR="backup"
SQL_PWD="backup"
SQL_DB="$1"
SQL_DIR="/data/backup/$(date +%F)"
SQL_CMD="/usr/bin/mysqldump"
 -o "$1" == "help" ];then
echo -e "\033[32m----------------\033[0m"
echo -e "\033[32mUsage:{/bin/bash $0
jfedu1|www|jfedu2|help}\[0m"
exit
fi
if [ ! -d $SQL_DIR ];then
mkdir -p $SQL_DIR
fi
$SQL_CMD -u$SQL_USR -p$SQL_PWD $SQL_DB >
$SQL_DIR/${SQL_DB}.sql
 ];then
echo -e "\033[32mThe MYSQL $SQL_DB backup
success.\[0m"
echo "----------------"
echo "ls -l $SQL_DIR/"ls -l $SQL_DIR/
else
rm -rf $SQL_DIR/${SQL_DB}.sql
echo -e "\033[32mThe MYSQL $SQL_DB backup
Failed.\[0m"
exit
fi
 备份脚本实现任意多个库备份;
#!/bin/bash
#2019年7月6日15::
#auto backup mysql database.
#by author www.jfedu.net
####################
SQL_USR="backup"
SQL_PWD="backup"
SQL_DB="$*"
SQL_DIR="/data/backup/$(date +%F)"
SQL_CMD="/usr/bin/mysqldump"
 -o "$1" == "help" ];then
echo -e "\033[32m----------------\033[0m"
echo -e "\033[32mUsage:{/bin/bash $0
jfedu1|www|jfedu2|help}\[0m"exit 1
fi
if [ ! -d $SQL_DIR ];then
mkdir -p $SQL_DIR
fi
for SQL_DB in `echo $SQL_DB`
do
$SQL_CMD -u$SQL_USR -p$SQL_PWD $SQL_DB >
$SQL_DIR/${SQL_DB}.sql
 ];then
echo -e "\033[32mThe MYSQL $SQL_DB backup
success.\[0m"
echo "----------------"
echo "ls -l $SQL_DIR/"
ls -l $SQL_DIR/
else
rm -rf $SQL_DIR/${SQL_DB}.sql
echo -e "\033[32mThe MYSQL $SQL_DB backup
Failed.\[0m"
exit
fi
done
 备份脚本实现所有数据库的备份;
#!/bin/bash
#2019年7月6日15::
#auto backup mysql database.
#by author www.jfedu.net
#########################
SQL_USR="backup"
SQL_PWD="backup"
SQL_DB="$*"
SQL_DIR="/data/backup/$(date +%F)"
SQL_CMD="/usr/bin/mysqldump"
 -o "$1" == "help" ];then
echo -e "\033[32m----------------\033[0m"
echo -e "\033[32mUsage:{/bin/bash $0
jfedu1|www|jfedu2|help}\[0m"
exit
fi
if [ ! -d $SQL_DIR ];then
mkdir -p $SQL_DIR
fi
for SQL_DB in `echo $SQL_DB`do
if [ "$SQL_DB" == "all" ];then
$SQL_CMD -u$SQL_USR -p$SQL_PWD
--all-databases > $SQL_DIR/${SQL_DB}.sql
 ];then
echo -e "\033[32mThe MYSQL $SQL_DB
backup success.\[0m"
echo "----------------"
echo "ls -l $SQL_DIR/"
ls -l $SQL_DIR/
continue
else
rm -rf $SQL_DIR/${SQL_DB}.sql
echo -e "\033[32mThe MYSQL $SQL_DB
backup Failed.\[0m"
exit
fi
fi
$SQL_CMD -u$SQL_USR -p$SQL_PWD $SQL_DB >
$SQL_DIR/${SQL_DB}.sql
 ];then
echo -e "\033[32mThe MYSQL $SQL_DB backupsuccess.\033[0m"
echo "----------------"
echo "ls -l $SQL_DIR/"
ls -l $SQL_DIR/
else
rm -rf $SQL_DIR/${SQL_DB}.sql
echo -e "\033[32mThe MYSQL $SQL_DB backup
Failed.\[0m"
exit
fi
done
4、SHELL编程实战Linux系统IP修改脚本
 能够将动态IP修改为静态IP;
#!/bin/bash
#2019年7月6日16::
#auto change server ip.
#by author www.jfedu.net
####################
ETH_IPADDR="$1"
GATEWAY="10.10.10.1"
DNS_SERVER="8.8.8.8"ETH_NAME="ifcfg-ens33"
NETMASK="255.255.255.0"
ETH_BAK="/data/backup/`date +%F`"
ETH_DIR="/etc/sysconfig/network-scripts"
 ];then
echo -e "\033[32m---------------\033[0m"
echo -e "\033[32mUsage:{/bin/bash $0
[0m"
exit
fi
if [ ! -d $ETH_BAK ];then
mkdir -p $ETH_BAK
fi
cd $ETH_DIR
cp $ETH_NAME $ETH_BAK
grep "dhcp" $ETH_NAME
 ];then
echo "TYPE=\"Ethernet\"
BOOTPROTO=\"static\"
NAME=\"ens33\"
DEVICE=\"ens33\"
ONBOOT=\"yes\"">$ETH_NAMEecho "IPADDR=$ETH_IPADDR" >>$ETH_NAME
echo "NETMASK=$NETMASK" >>$ETH_NAME
echo "GATEWAY=$GATEWAY" >>$ETH_NAME
echo "DNS1=$DNS_SERVER" >>$ETH_NAME
fi
 能够实现本身静态IP,修改为其他静态IP;
#!/bin/bash
#2019年7月6日16::
#auto change server ip.
#by author www.jfedu.net
####################
ETH_IPADDR="$1"
GATEWAY="10.10.10.1"
DNS_SERVER="8.8.8.8"
ETH_NAME="ifcfg-ens33"
NETMASK="255.255.255.0"
ETH_BAK="/data/backup/`date +%F`"
ETH_DIR="/etc/sysconfig/network-scripts"
 ];then
echo -e "\033[32m---------------\033[0m"
echo -e "\033[32mUsage:{/bin/bash $0
[0m"exit 1
fi
if [ ! -d $ETH_BAK ];then
mkdir -p $ETH_BAK
fi
cd $ETH_DIR
cp $ETH_NAME $ETH_BAK
echo "TYPE=\"Ethernet\"
BOOTPROTO=\"static\"
NAME=\"ens33\"
DEVICE=\"ens33\"
ONBOOT=\"yes\"">$ETH_NAME
echo "IPADDR=$ETH_IPADDR" >>$ETH_NAME
echo "NETMASK=$NETMASK" >>$ETH_NAME
echo "GATEWAY=$GATEWAY" >>$ETH_NAME
echo "DNS1=$DNS_SERVER" >>$ETH_NAME
 判断用户输入的IP是否正确;
#!/bin/bash
#2019年7月6日16::
#auto change server ip.
#by author www.jfedu.net
####################GATEWAY="10.10.10.1"
DNS_SERVER="8.8.8.8"
ETH_NAME="ifcfg-ens33"
NETMASK="255.255.255.0"
ETH_BAK="/data/backup/`date +%F`"
ETH_DIR="/etc/sysconfig/network-scripts"
if [ ! -d $ETH_BAK ];then
mkdir -p $ETH_BAK
fi
while true
do
read -p "Please Input Server IPaddr: " ETH_IPADDR
if [ ! -z $ETH_IPADDR ];then
IP1=``
IP2=``
IP3=``
IP4=``
 -a $IP1 -le  -a $IP2 -ge  -a $IP2 -le  -a $IP3 -ge
-a $IP3 -le  -a $IP4 -ge  -a $IP1 -le  ];then
ETH_IPADDR=$ETH_IPADDR
break
fifi
done
cd $ETH_DIR
cp $ETH_NAME $ETH_BAK
echo "TYPE=\"Ethernet\"
BOOTPROTO=\"static\"
NAME=\"ens33\"
DEVICE=\"ens33\"
ONBOOT=\"yes\"">$ETH_NAME
echo "IPADDR=$ETH_IPADDR" >>$ETH_NAME
echo "NETMASK=$NETMASK" >>$ETH_NAME
echo "GATEWAY=$GATEWAY" >>$ETH_NAME
echo "DNS1=$DNS_SERVER" >>$ETH_NAME
 ];then
echo
echo "cat $ETH_DIR/$ETH_NAME"
cat $ETH_DIR/$ETH_NAME
echo "----------------"
echo -e "\033[32mThe Server IPaddr config success.\033[0m"
else
echo
echo -e "\033[32mThe Server IPaddr config Failed.\033[0m"exit
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. 吴裕雄--天生自然 PHP开发学习:MySQL 插入数据

    <?php $servername = "localhost"; $username = "root"; $password = "admin& ...

  2. PAT Basic 1083 是否存在相等的差 (20) [hash映射,map STL]

    题目 给定 N 张卡⽚,正⾯分别写上 1.2.--.N,然后全部翻⾯,洗牌,在背⾯分别写上 1.2.--. N.将每张牌的正反两⾯数字相减(⼤减⼩),得到 N 个⾮负差值,其中是否存在相等的差? 输⼊ ...

  3. win10 python 3.7 pip install tensorflow

    环境: ide:pyCharm 2018.3.2 pyhton3.7 os:win10 64bit 步骤: 1.确认你的python有没有装pip,有则直接跳2.无则cmd到python安装目录下ea ...

  4. 1. 模块化的引入与导出 (commonJS规范 和ES6规范)

    node组件导出模块 node一般用commonJS规范 可以通过module.exports导出自己写的模块 这样其他的js文件就可以引用并使用这个模块 module.exports = { log ...

  5. ubuntu14 编译tensorflow C++ 接口

    tensorflow1.11 bazel 0.15.2 protobuf 3.6.0 eigen 3.3.5 wget -t 0 -c https://github.com/eigenteam/eig ...

  6. Linux-sys文件系统

    1.sys文件系统本质上和proc文件系统是一样的,都是虚拟文件系统.都在根目录下有个目录(一个是/proc目录,另一个是/sys目录),因此都不是硬盘中的文件,都是内核中的数据结构的可视化接口. 2 ...

  7. 关于shopee平台接口(php)对接示例

    2018年8月之后,shopee开始使用新接口,需要进行授权操作 1.授权 public function getAuth(){ /** * @param ShopApiShopee $model * ...

  8. @ResponseBody与@RestController

    @ResponseBody与@RestController的作用与区别 https://blog.csdn.net/xfl4629712/article/details/78528387

  9. Qt QGraphicsScene||GraphicsView函数刷新多次内存溢出问题

    需将QGraphicsScene *scene = new QGraphicsScene;放入上面声明头文件中声明: cpp文件中声明: 使用: 需要添加这个 scene->clear(); 这 ...

  10. embed标签属性

    embed标签属性   (一).基本语法: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等,    Netscape及新版 ...