shell脚本编程循环之for/while/untill循环

循环执行: 将一段代码重复执行0、1或多次;

进入条件:条件满足时才进入循环;

退出条件:每个循环都应该有退出条件,以有机会退出循环;

bash脚本:

for循环

while循环

until循环

for循环:

两种格式:

(1) 遍历列表

(2) 控制变量

(1)遍历列表:

for  VARAIBLE  in  LIST; do

循环体

done

进入条件:只要列表有元素,即可进入循环;

退出条件:列表中的元素遍历完成;

LISTT的生成方式:

(1) 直接给出;

(2) 整数列表

(a) {start..end}

(b) seq [start  [incremtal]] last

(3) 返回列表的命令

(4) glob

(5) 变量引用

[email protected], $*

示例:添加三个用户

#!/bin/bash
#
for username in user21 user22 user23; do
    if id $username &> /dev/null; then
        echo "$username exists."
    else
        useradd $username && echo "Add user $username finished."
    fi
done

示例:求100以内所有正整数之和;

#!/bin/bash
#
declare -i sum=0
for i in {1..100}; do
    echo "\$sum is $sum, \$i is $i"
    sum=$[$sum+$i]
done
echo $sum

示例:判断/var/log目录下的每一个文件的内容类型

#!/bin/bash
#
for filename in /var/log/*; do
    if [ -f $filename ]; then
        echo "Common file."
    elif [ -d $filename ]; then
        echo "Directory."
    elif [ -L $filename ]; then
        echo "Symbolic link."
    elif [ -b $filename ]; then
        echo "block special file."
    elif [ -c $filename ]; then
        echo "character special file."
    elif [ -S $filename ]; then
        echo "Socket file."
    else
        echo "Unkown."
    fi
done

for循环格式:

for  VARAIBLE  in  LIST; do

循环体

done

for循环实现9*9乘法表

#!/bin/bash
#
for j in {1..9}; do
    for i in $(seq 1 $j); do
        echo -n -e "${i}X${j}=$[${i}*${j}]\t"
    done
    echo 
done

while循环:

while  CONDITION; do

循环体

循环控制变量修正表达式

done

进入条件:CONDITION测试为”真“

退出条件:CONDITION测试为”假“

示例:求100以内所有正整数之和;

#!/bin/bash
#
declare -i sum=0
declare -i i=1

while [ $i -le 100 ]; do
    let sum+=$i
    let i++
done
echo $sum

until循环:

until  CONDITION; do

循环体

循环控制变量修正表达式

done

进入条件:CONDITION测试为”假“

退出条件:CONDITION测试为”真“

示例:求100以内所有正整数之和;

#!/bin/bash
#
declare -i sum=0
declare -i i=1
until [ $i -gt 100 ]; do
    let sum+=$i
    let i++
done
echo $sum

while循环的特殊用法(遍历文件的行):

while  read  VARIABLE; do

循环体;

done  <  /PATH/FROM/SOMEFILE

依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将基赋值给VARIABLE变量;

示例:找出ID号为偶数的用户,显示其用户名、ID及默认shell;

#!/bin/bash
#
while read line; do
    userid=$(echo $line | cut -d: -f3)
    username=$(echo $line | cut -d: -f1)
    usershell=$(echo $line | cut -d: -f7)
    if [ $[$userid%2] -eq 0 ]; then
        echo "$username, $userid, $usershell."
    fi
done < /etc/passwd

for循环的特殊用法:

for  ((控制变量初始化;条件判断表达式;控制变量的修正语句)); do

循环体

done

控制变量初始化:仅在循环代码开始运行时执行一次;

控制变量的修正语句:每轮循环结束会先进行控制变量修正运算,而后再做条件判断;

示例:求100以内所有正整数之和

#!/bin/bash
#
declare -i sum=0
for ((i=1;i<=100;i++)); do
    let sum+=$i
done
echo "Sum: $sum."

示例:打印九九乘法表

#!/bin/bash
#
for ((j=1;j<=9;j++)); do
    for ((i=1;i<=j;i++)); do
        echo -e -n "${i}X${j}=$[${i}*${j}]\t"
    done
    echo
done
时间: 2024-08-05 13:45:35

shell脚本编程循环之for/while/untill循环的相关文章

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

shell脚本编程-循环(for、while、until)

for命令格式:– list参数:迭代中要用的一系列值– 每个迭代中,变量var会包含列表中的当前值– do和done语句之间输入的命令可以是一条或多条标准的bash shell命令 1 2 3 4 for var in list do commands done 读取列表中的值 for命令最基本的用法就是遍历for命令自身中定义的一系列值: 在最后一次迭代后,$test变量的值会在shell脚本的剩余部分一直保持有效,除非修改它 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

shell脚本编程——流程控制

shell脚本编程--流程控制 目   录 一. if 二. case 三. for 四. while 五. until 六. 综合应用 一.if 1.语法 (1)单分支 if  判断条件:then fi (2)双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi (3)多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; then 条件为真的分支代码 else 以上条件都为假

shell脚本编程的选择分支结构

选择执行结构: if语句单分支结构:如果条件为真,则执行then后的命令,否则,不做任何操作: if CONDITION :then STATEMENT fi 或 if CONDITION ; then STATEMENT1 STATEMENT2 ... fi 注意:想要执行then后面的STATEMENTS,前提条件是CONDITION部分为真: if语句的双分支结构:如果条件为真,就执行then后面的命令:否则就执行else后面的命令: if CONDITION ; then STATEME

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]

Linux中的shell脚本编程——函数

概述: 本章节将总结while,for循环语句的特殊用法,在不同的场景当中,更能发挥其功能和价值.除此之外,还会介绍一种特殊的循环语句select语句,实现菜单的作用.最重要的是讲解shell脚本编程中函数的用法.这些内容都要熟练掌握. 一.循环语句的特殊用法: 1.while循环的特殊用法(遍历文件的每一行): □语法:while read line; do 循环体 done < /PATH/FROM/SOMEFILE □意义:依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将

Linux 的shell脚本编程

shell脚本编程 程序:指令+数据 程序编辑风格:             过程式:以指令为中心,数据服务于指令             对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令 编程语言: 低级:汇编语言 高级:编译:高级语言-->编译器-->目标代码 java,c#,c,c++ 解释:高级语言-->解释器-->机器代码 shell,per,python 编程逻辑处理方式:           顺序执行      

Shell脚本编程30分钟入门

什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch test_$i.txt done 示例解释 第1行:指定脚本解释器,这里是用/bin/sh做解释器的 第2行:切换到当前用户的home目录 第3行:创建一个目录shell_tut 第4行:切换到shell_tut目录 第5行:循环条件,一共循环10次 第6行:创建一个test_1…10.txt文件 第7

Linux shell脚本编程基础之练习篇

shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash if [ $# -ne 1 ] then echo "请输入一个参数" exit else echo "参数正确" newfile=$1 fi #echo `grep "^#\!" ${newfile}` if ! grep "^#\!" ${newfile} &>/