shell学习之路:流程控制(for)

for循环的语法:

1.  for 变量 in 值1 值2 值3....

    do

      程序

    done

例如:下列脚本会分别打印4次 分别是morning noon afternoon evening的值

1 #!/bin/bash
2 #打印时间
3 #Author Mrfeng
4
5 for time in morning noon afternoon evening
6         do
7                 echo $time
8         done

例如批量解压缩:

 1 #!/bin/bash
 2 #批量解压缩脚本
 3 #Author: Mrf
 4
 5 path=/opt/lamp
 6
 7 cd $path
 8
 9 ls *.tar.gz > ls.log
10 ls *.tgz >> ls.log
11 for i in $(cat ls.log)
12         do
13                 tar zxvf $i &>>cc.log
14         done
15 rm -rf ls.log

2.for 语法二

格式:

1 for ((初始值;循环控制条件;变量变化))
2     do
3            程序
4     done

例如:

1 #!/bin/bash
2 #从1加到100
3
4 s=0
5 for(( i=1;i<=100;i=i+1 ))
6     do
7         s=$(($s+$i))
8     done
9 echo "the sum of 1+2+...+100is: $s"

例如:批量添加用户

 1 #!/bin/bash
 2 # 批量添加用户数量的用户
 3 # Author:Mr f (E-mail:22222222)
 4
 5 read -p "Please input user name:" -t 30 name
 6 read -p "Please input the number of users:" -t 30 num
 7 read -p "Please input the password of users:" -t 30 pass
 8 if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]
 9         then
10                 y=$(echo $num | sed ‘s/[0-9]//g‘)
11                 if [ -z "$y" ] ; then
12                         for ((i=1;i<=$num;i=i+1))
13                                 do
14                                         /usr/sbin/useradd $name$i &>/dev/null
15                                         echo $pass | /usr/bin/passwd --stdin $n
16 ame$i &>/dev/null
17                                 done
18                 fi
19 fi
20 cat /etc/passwd | grep user[1-$num] | cut -d ":" -f 1 >>userlist.log

当然我也写了一个利用 userlist.log进行批量删除的脚本方便大家做完实验后清理

1 #!/bin/bash
2 for i in $(cat ./userlist.log)
3         do
4                 /usr/sbin/userdel -r $i &>>del.log
5         done
6 #cat del.log
7 rm -rf del.log
时间: 2024-10-19 09:12:57

shell学习之路:流程控制(for)的相关文章

shell学习之路:流程控制(while)

while循环: 介绍:while循环是不定循环,也称作条件循环.只要条件判断成立,循环就会一直继续执行,直到条件判断不成立,循环才会停止,这就是和for的固定循环不太一样了. 1 while [ 条件判断 ] 2 do 3 程序 4 done 示例: 1 [[email protected] bash]# vi while1.sh 2 #!/bin/bash 3 #从1到100 4 i=1 5 s=0 6 while [ $i -le 100 ] ;do 7 s=$(( $s+$i )) 8

shell学习之路:流程控制(if)

1.单分支if条件语句 1 if [ 条件判断式 ];then 2 程序 3 fi 4 或者 5 if [ 条件判断式 ] 6 then 7 程序 8 fi 注意事项: 1.if语句使用fi结尾,和一般语言使用大括号结尾不同 2.[ 条件判断式 ]就是使用test命令判断,所以中括号和条件判断式之间必须有空格 前后都要有 3.then后面跟符合条件之后执行的程序,可以放在[]之后,用";"分号分割.也可以换行写入,就不需要";"了 例如:判断分区使用率 脚本说明:

lishell学习之路:流程控制(case)

流程控制case语句: 介绍:多分支case条件语句 1.case语句和if..elif..else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关系. 格式: 1 case $变量名 in 2 "值1") 3 如果变量的值等于值1,则执行代码 4 ;; 5 "值2") 6 如果变量的值等于值2,则执行代码 7 ;; 8 "值3") 9 如果变量的值等于值3,则执行代码

Shell学习之路和我发布过的Shell脚本博文

Shell学习之路 目录 Shell学习之路[第一篇]:别名,管道,用户配置文件,变量,read Shell学习之路[第二篇]:条件测试,运算符,选择结构,for循环结构 Shell学习之路[第三篇]:While循环,C-for循环,Until循环,case分支结构,流程控制语句 Shell学习之路[第四篇]:函数,数组,变量替换 Shell学习之路[第五篇]:多线程脚本 Shell学习之路[第六篇]:Trap信号捕捉命令介绍与Shell结合实战讲解 Shell学习之路[第七篇]:Linux下d

[Shell]条件判断与流程控制:if, case, for, while, until

-------------------------------------------------------------------------------------------------------- [条件判断] 1. 按文件类型进行判断 -b 文件    判断该文件是否存在,并且为块设备文件(是块设备文件为真) -c 文件    判断该文件是否存在,并且为字符设备文件(是字符设备文件为真) -d 文件    判断该文件是否存在,并且为目录文件(是目录为真) -e 文件    判断该文

Shell常用命令和流程控制

在shell脚本中可以使用三类命令: >>> Unix 命令 <<< 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字操作的. 常用命令语法及功能 echo "some text": 将文字内容打印在屏幕上 ls: 文件列表 wc –l file  wc -w file  wc -c file: 计算文件行数.计算文件中的单词数.计算文件中的字符数 cp sourcefile dest

Shell入门教程:流程控制(1)命令的结束状态

在Bash Shell中,流程控制命令有2大类:“条件”.“循环”.属于“条件”的有:if.case:属于“循环”的有:for.while.until:命令 select 既属于“条件”,也属于“循环”.不管是哪一种,均需进行条件测试,再根据测试结果,决定程序流程进行的方向. 以下逐一说明这些命令的用法. 第一节:命令的结束状态 Bash Shell Script 可由许多命令组成.每一个命令执行后,都会传回一个结束状态值,如果执行成功,传回0,如果执行失败,则传回非0值.执行失败,也分成许多状

JavaScript学习笔记——javascript流程控制

javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分支结构.条件结构) 根据给定的条件有选择的执行形相应的语句. (1) if else if else 1.单路分支 //条件可以是表达式也可以是任何的数据类型 //大括号会把他里面的代码当作一个整体来运行,如果只有一条语句,可以省略大括号 if(条件){ 条件成立执行的语句 } 2.双路分支 if(

Shell(三)流程控制

Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); } else { // 不做任何事情 } 在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else. if else if if 语句语法格式: if condition then command1 command2 ... commandN fi 写成一行(适