shell之for循环的3个简单脚本
(1)打印乘法口诀表
#!/bin/sh for i in {1..9} #取1-9的数字 dofor n in {1..9} #取1-9的数字do[ $i -ge $n ] && echo -n "${i}x${n}=$((i*n)) " #如果$i大于等于$n,则输出。done echo " " done
效果:
[root@shell day3]# sh for9X9.sh
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
(2)批量添加用户及随机密码
#!/bin/sh for i in `seq -w 10` do user=oldboy-$i #定义用户 pass=`echo $RANDOM|md5sum |cut -c 1-8 ` #定义密码,取8位数。这里的密码即为随机的字母和数字的组合。可搜索$RANDOM环境变量及md5sum命令详解。 echo "user:$user password:$pass" >>/tmp/user.txt #将账号和密码输入到一个文件内,以便查询。 useradd $user && echo "$pass" |passwd --stdin $user #无交互的添加密码。 done
效果:
[root@shell day3]# cat /tmp/user.txt
user:oldboy-01 password:d4198542
user:oldboy-02 password:6e025742
user:oldboy-03 password:1a94ac35
user:oldboy-04 password:594bb055
user:oldboy-05 password:fcecc05c
user:oldboy-06 password:3957ee7a
user:oldboy-07 password:1454a6e7
.............................................................
(3)mysql分库分表备份
分库备份:
#!/bin/sh MYUSER=root #mysql的用户 MYPASS=123456 #mysql root用户的密码 MYCMD="mysql -u$MYUSER -p$MYPASS" #定义了mysql命令 MYDUMP="mysqldump -u$MYUSER -p$MYPASS" #定义了mysqldump命令 DATABASE=`$MYCMD -e "show databases;"|sed '1d'|egrep -v "mysql|performance_schema|information_schema"` #获取到数据库名 for database in $DATABASE do $MYDUMP -B $database|gzip >/server/backup/${database}_$(date +%F).sql.gz #for循环分库备份 done
分表备份:
#!/bin/sh MYUSER=root MYPASS=123456 MYCMD="mysql -u$MYUSER -p$MYPASS" MYDUMP="mysqldump -u$MYUSER -p$MYPASS" DATABASE=`$MYCMD -e "show databases"|sed '1d'|egrep -v "mysql|performance_schema|information_schema"` for database in $DATABASE do [ ! -d /server/backup/$database ] && mkdir -p /server/backup/$database #创建以数据库名命名的目录 TABLE=`$MYCMD -e "show tables from $database;"|sed '1d'` #获取表名for table in $TABLEdo$MYDUMP $database $table |gzip >/server/backup/$database/${database}_${table}_$(date +%F).sql.gz #for循环分表备份done done
分表备份效果:
[root@shell backup]# ll
总用量 64
drwxr-xr-x. 2 root root 24576 6月 6 16:00 bbs
drwxr-xr-x. 2 root root 4096 6月 6 16:00 blog
drwxr-xr-x. 2 root root 4096 6月 6 16:00 lee_default
drwxr-xr-x. 2 root root 4096 6月 6 16:00 lee_gbk
drwxr-xr-x. 2 root root 4096 6月 6 16:00 lee_utf8
drwxr-xr-x. 2 root root 4096 6月 6 16:00 liyiliang
drwxr-xr-x. 2 root root 4096 6月 6 16:00 test
drwxr-xr-x. 2 root root 4096 6月 6 16:00 test1
drwxr-xr-x. 2 root root 12288 6月 6 16:00 www
[root@shell backup]# tree #部分数据
................................................
x tqq bbs_pre_ucenter_pm_messages_8_2014-06-06.sql.gz
x tqq bbs_pre_ucenter_pm_messages_9_2014-06-06.sql.gz
x tqq bbs_pre_ucenter_protectedmembers_2014-06-06.sql.gz
x tqq bbs_pre_ucenter_settings_2014-06-06.sql.gz
x tqq bbs_pre_ucenter_sqlcache_2014-06-06.sql.gz
x tqq bbs_pre_ucenter_tags_2014-06-06.sql.gz
x mqq bbs_pre_ucenter_vars_2014-06-06.sql.gz
tqq blog
x tqq blog_wp_commentmeta_2014-06-06.sql.gz
x tqq blog_wp_comments_2014-06-06.sql.gz
x tqq blog_wp_links_2014-06-06.sql.gz
x tqq blog_wp_options_2014-06-06.sql.gz
x tqq blog_wp_postmeta_2014-06-06.sql.gz
x tqq blog_wp_posts_2014-06-06.sql.gz
x tqq blog_wp_term_relationships_2014-06-06.sql.gz
x tqq blog_wp_terms_2014-06-06.sql.gz
x tqq blog_wp_term_taxonomy_2014-06-06.sql.gz
x tqq blog_wp_usermeta_2014-06-06.sql.gz
x mqq blog_wp_users_2014-06-06.sql.gz
tqq lee_default
tqq lee_gbk
tqq lee_utf8
x tqq lee_utf8_leesir_2014-06-06.sql.gz
x mqq lee_utf8_test_2014-06-06.sql.gz
tqq liyiliang
.................................................
转载于:https://blog.51cto.com/chocolee/1424570
shell之for循环的3个简单脚本相关推荐
- for循环批量写文件 shell_shell之for循环的3个简单脚本
(1)打印乘法口诀表#!/bin/sh for i in {1..9} #取1-9的数字 do for n in {1..9} #取1-9的数字 do [ $i -ge $n ] && ...
- Shell中的循环语句for、while、until实例讲解
在编程语言中,循环语句是最基本的语法之一,在Shell(这里是Bash)中也不例外,再把以前自己写过的相关内容整理一下吧. 这里包括for/while/until循环,以及变量自增的语法实例. ...
- linux shell中实现循环日期的实例代码
这篇文章主要介绍了linux shell中实现循环日期的实例代码,文中还给大家提到了LINUX SHELL遍历日期(指定输入两个日期)的实现方法,感兴趣的朋友跟随小编一起看看吧 下面通过一段代码给大家 ...
- 2021-09-09【linux】丨shell使用for循环遍历文件/数组
目录 摘要 for循环遍历文件使用方法 方法一 方法二 总结 摘要 在日常生信分析过程中,分析员或多或少会使用for循环批量处理样品或者分组.这里我简单整理一下自己常用的两种遍历方法. for循环遍历 ...
- Linux循环中累计数据,linux shell 读取for循环中出现难处理的数据之单引号错误实例...
原语句: #!/bin/bash for test in I don't know if this'll work do echo "work:$test" done 结果: wo ...
- linux shell 的 for 循环
在shell用for循环做数字递增的时候发现问题,特列出shell下for循环的几种方法: 1. for i in `seq 1 1000000`;do echo $i done 用seq 1 100 ...
- SHELL简单脚本编写
vim /root/7.sh #!/bin/bash X=$[RANDOM%10+1] read -p "[1-10]你猜:" cai if [ $cai -eq $X ];the ...
- shell中while循环案例
shell中while循环案例 新建一个文件: while_test.sh ,复制一下代码: i=0 while ((i < 9)) ...
- shell编程之循环语句
shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...
最新文章
- 信息系统项目管理师优秀论文:项目风险管理--jiangyiwu
- ssh(Spring+Spring mvc+hibernate)——hibernate.cfg.xml
- Nginx笔记-关于nginx.conf中proxy_pass中末尾不加/的坑
- 调制的缺点_DML、EAM与MZI调制的比较
- IOS 获取系统通讯录中的联系人信息
- HDU 1234- 开门人和关门人
- 136_原始套接字_链路层MAC包_模仿他人飞秋,给自己主机上的飞秋【发送UDP数据】【只需要修改包含用户名、头像信息的数组】
- 如何在springboot中返回jsp页面
- 面对台风“烟花”,旅行延误会如何赔付?
- 全球半导体今年出货有望创新高,蓝牙芯片需求强劲
- php图片留白,img底部留白问题的六大解决方法
- 线程、进程、多线程、多进程 和 多任务 小结
- 宝库\要出发 IOS面试试题
- 组合数学的一些常见公式
- 基于C++如何使用EGE做一个简单的坦克大战游戏
- sql:查询选修了全部课程的学生姓名
- CSS-border边框
- 什么是Redis缓存穿透?redis面试题及答案(附面试题大全)
- java旅游管理开题答辩ppt,旅游管理开题报告
- 获取屏幕大小 android,Android获取屏幕大小