shell脚本常用脚本:for循环

shell脚本常用脚本:for循环

wheil 很多循环可以用for循环替换

for循环语法结构

for 变量名 in 变量取值列表

do

指令

done

for ((exp1;exp2;exp3))

do

指令

Done

脚本实例:for  99乘法表

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :99乘法表

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

for a in `seq 1 9`

do

for b in `seq 1 9`

do

if [ $a -ge $b ];then

echo -en "\t$a x $b" = $(expr  $a \* $b)

fi

done

echo "  "

done

[[email protected] for]# ./for02.sh

1 x 1 = 1

2 x 1 = 2       2 x 2 = 4

3 x 1 = 3       3 x 2 = 6       3 x 3 = 9

4 x 1 = 4       4 x 2 = 8       4 x 3 = 12      4 x 4 = 16

5 x 1 = 5       5 x 2 = 10      5 x 3 = 15      5 x 4 = 20      5 x 5 = 25

6 x 1 = 6       6 x 2 = 12      6 x 3 = 18      6 x 4 = 24      6 x 5 = 30      6 x 6 = 36

7 x 1 = 7       7 x 2 = 14      7 x 3 = 21      7 x 4 = 28      7 x 5 = 35      7 x 6 = 42      7 x 7 = 49

8 x 1 = 8       8 x 2 = 16      8 x 3 = 24      8 x 4 = 32      8 x 5 = 40      8 x 6 = 48      8 x 7 = 56      8 x 8 = 64

9 x 1 = 9       9 x 2 = 18      9 x 3 = 27      9 x 4 = 36      9 x 5 = 45      9 x 6 = 54      9 x 7 = 63      9 x 8 = 72      9 x 9 = 81

脚本实例:for  1-100求和

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :1-100求和

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

for ((i=0; i<=100; i++))

do

((j=j+i))

done

#echo $j

[ -n "$j" ] && printf "totalsum is:$j\n"

[[email protected] for]# ./for03.sh

totalsum is:5050

脚本实例:批量创建文件

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :批量创建文件

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

#递归创建文件,并进入目录

mkdir -p /tmp/shell/for/test/ && cd /tmp/shell/for/test

for filenum in `seq 10`

do

touch jorbabe-$filenum

done

[[email protected] for]# ll test/

total 0

-rw-r--r--. 1 root root 0 Nov 22 10:36 jorbabe-1

-rw-r--r--. 1 root root 0 Nov 22 10:36 jorbabe-10

-rw-r--r--. 1 root root 0 Nov 22 10:36 jorbabe-2

.............

脚本实例:批量创建用户设置密码

#!/bin/bash

#Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S"

#Author   :jorbabe

#Mail       :[email protected]

#Function        :批量创建用户并设置随机密码

#Version  :版本 V1.1

#Update           :2016-11-22 15:04:12

#调用系统库

. /etc/init.d/functions

#>/tmp/shell/for/test/user.log

#>/tmp/shell/for/test/fail_user.log

#数值01-10

for n in $(seq -w 10)

do

#时间格式

tim=`date "+%Y_%m_%d %H:%M:%S"`

#随机密码

passwd=`echo $(date +%t%N)$RANDOM|md5sum|cut -c 2-9`

#创建用户账号

useradd jorbabe-$n >&/dev/null && user_status=$?

#设置用户密码

echo "$passwd"|passwd --stdin jorbabe-$n >&/dev/null && pass_status=$?

#检查用户创建于设置情况

if  [ $user_status -eq 0 -a $pass_status -eq 0 ] ; then

action "adduser jorbabe-$n" /bin/true

#创建成功,生成账户信息写到log

echo -e "$tim\tuser: jorbabe-$n\tpass: $passwd" >>/tmp/shell/for/test/user.log

else

action "adduser jorbabe-$n" /bin/false

#创建失败,生成账户信息写到log

echo -e "$tim\tuser:\tjorbabe-$n pass:\t$passwd" >>/tmp/shell/for/test/fail_user.log

fi

done

[[email protected] for]# ./for05.sh

adduser jorbabe-01                                         [  OK  ]

adduser jorbabe-02                                         [  OK  ]

adduser jorbabe-03                                         [  OK  ]

adduser jorbabe-04                                         [  OK  ]

adduser jorbabe-05                                         [  OK  ]

adduser jorbabe-06                                         [  OK  ]

adduser jorbabe-07                                         [  OK  ]

adduser jorbabe-08                                         [  OK  ]

adduser jorbabe-09                                         [  OK  ]

adduser jorbabe-10                                         [  OK  ]

[[email protected] for]# cat test/user.log

2016_11_22 12:08:43     user: jorbabe-01        pass: 84327849

2016_11_22 12:08:43     user: jorbabe-02        pass: cf11a1ee

2016_11_22 12:08:43     user: jorbabe-03        pass: 2a60233d

2016_11_22 12:08:43     user: jorbabe-04        pass: 2d181418

2016_11_22 12:08:43     user: jorbabe-05        pass: 641f69d6

2016_11_22 12:08:43     user: jorbabe-06        pass: b8d57d2a

2016_11_22 12:08:43     user: jorbabe-07        pass: ae123cb3

2016_11_22 12:08:44     user: jorbabe-08        pass: db1f73c1

2016_11_22 12:08:44     user: jorbabe-09        pass: a6bc81e1

2016_11_22 12:08:44     user: jorbabe-10        pass: 22aac1f2

[[email protected] for]#

删除脚本创建的用户账号

[[email protected] for]# for n in $(seq -w 10);do userdel -r jorbabe-$n;done

原文地址:http://blog.51cto.com/xianlei/2088011

时间: 2024-10-10 07:38:26

shell脚本常用脚本:for循环的相关文章

shell脚本常用脚本:if判断

shell脚本常用脚本:if判断 str1 = str2 当两个串有相同内容.长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当串的长度为0时为真(空串) str1    当串str1为非空时为真 [ "2006.01.23" \> "2005.03.01" ] && echo dayu || echo budayu int1 -eq int2 两数相等为

shell脚本常用脚本:while

while条件句 语法: 条件满足一直做 while 条件 do 指令 Done ========== 条件满足退出(不多见) until 条件 do 指令 done 脚本实例:守护进程监控 Sleep:按秒打印 Usleep:微秒打印, 单位是微秒(百万分之一秒): #!/bin/bash #Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S" #Author   :jorbabe #Mail       :[emai

shell之常用脚本

1 批量创建用户: #!/bin/bash i=30 groupadd class2 while [ $i -le 50 ] do if id user$i &> /dev/null then echo "This user$i is exist" else useradd -g class2 user$i && echo "user$i" | passwd --stdin user$i &> /dev/null &

Shell编程(脚本)的常用命令和语句

一些常用的Shell编程(脚本)命令和语句,可以满足一般需求. 接收到的命令参数: 参数个数: $# 参数值: 命令本身:$0 第一个参数:$1 第二个参数:$2 -- 退出命令: exit echo命令: 换行: echo 输出后不换行: echo -n "请选择(y/n)?" 利用转义符号输出双引号: echo "欢迎使用\"正式服务器\"部署工具." 输出中带变量: echo "即将部署项目:$project_name"

Shell脚本(脚本结构和执行方法,date命令用法,脚本中的变量)

Shell是什么 Shell是一种脚本语言,和传统语言C,Python...相比还是比较简单的. 可以使用逻辑判断,循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 Shell脚本结构和执行方法 1.开头必须要#!/bin/bash  解释器命令,下面的命令是通过哪一个解释器执行的 我们发现sh其实只是bash的软连接 [[email protected] shell]# ll /bin/sh lrwxrwxrwx. 1 root

表分区常用脚本

use SalesDB1 go -- 查看表是否已经分区 SELECT * FROM sys .tables AS t JOIN sys .indexes AS i ON t .[object_id] = i .[object_id] AND i .[type] IN ( 0,1 ) JOIN sys .partition_schemes ps ON i .data_space_id = ps .data_space_id WHERE t .name = 'table' ; -- 只加表名不需要

Java调用Shell命令和脚本,致力于hadoop/spark集群

前言 说明的是,本博文,是在以下的博文基础上,立足于它们,致力于我的大数据领域! http://kongcodecenter.iteye.com/blog/1231177 http://blog.csdn.net/u010376788/article/details/51337312 http://blog.csdn.net/arkblue/article/details/7897396 第一种:普通做法 首先,编号写WordCount.scala程序. 然后,打成jar包,命名为WC.jar.

Inno Setup的常用脚本

Inno Setup的常用脚本 分类: VC++神奇理论 2012-12-06 10:07 3234人阅读 评论(2) 收藏 举报 安装不同的目录: [Files] Source: "我的程序\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "我的程序\*"; DestDir: {cf}\我的程序; Flags: ignoreve

shell vs python脚本监控http请求

各写一个shell和python脚本来监控http请求,并在服务不可用的时候重启服务. 监控的连接为: http://192.168.1.101:5022/product http://192.168.1.101:5024/module shell脚本如下,配合crontab计划任务每一分钟执行一次检查: #!/bin/bash # This shell is used to moniter 192.168.1.101 port 5022 & 5024 date  #在crontab里用来记录l