bash脚本编程for

bash脚本编程:
    
    if语句、bash -n、bash -x

CONDITION:
            bash命令:
                用命令的执行状态结果;
                    成功:true
                    失败:flase

成功或失败的意义:取决于用到的命令;

单分支:
            if CONDITION; then
                if-true
            fi

双分支:
            if CONDITION; then
                if-true
            else
                if-false
            fi

多分支:
            if CONDITION1; then
                if-true
            elif CONDITION2; then
                if-ture
            elif CONDITION3; then
                if-ture
            ...
            esle
                all-false
            fi

逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束;

示例:用户键入文件路径,脚本来判断文件类型;
            #!/bin/bash
            #

read -p "Enter a file path: " filename

if [ -z "$filename" ]; then
                echo "Usage: Enter a file path."
                exit 2
            fi

if [ ! -e $filename ]; then
                echo "No such file."
                exit 3
            fi

if [ -f $filename ]; then
                echo "A common file."
            elif [ -d $filename ]; then
                echo "A directory."
            elif [ -L $filename ]; then
                echo "A symbolic file."
            else
                echo "Other type."
            fi    
            
        注意:if语句可嵌套;

循环:for, while, until
        循环体:要执行的代码;可能要执行n遍;
            进入条件:
            退出条件:

for循环:
            for 变量名  in 列表; do
                循环体
            done

执行机制:
                依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束;

示例:添加10个用户, user1-user10;密码同用户名;
                #!/bin/bash
                #

if [ ! $UID -eq 0 ]; then
                    echo "Only root."
                    exit 1
                fi

for i in {1..10}; do
                    if id user$i &> /dev/null; then
                      echo "user$i exists."
                    else
                        useradd user$i
                    if [ $? -eq 0 ]; then
                        echo "user$i" | passwd --stdin user$i &> /dev/null
                            echo "Add user$i finished."
                        fi
                    fi
                done

列表生成方式:
                (1) 直接给出列表;
                (2) 整数列表:
                    (a) {start..end}
                    (b) $(seq [start [step]] end)
                (3) 返回列表的命令;
                    $(COMMAND)
                (4) glob
                (b) 变量引用;
                    [email protected], $*

示例:判断某路径下所有文件的类型
                #!/bin/bash
                #

for file in $(ls /var); do
                    if [ -f /var/$file ]; then
                    echo "Common file."
                    elif [ -L /var/$file ]; then
                    echo "Symbolic file."
                    elif [ -d /var/$file ]; then
                    echo "Directory."
                    else
                    echo "Other type."
                    fi
                done

示例:
                #!/bin/bash
                #
                declare -i estab=0
                declare -i listen=0
                declare -i other=0

for state in $( netstat -tan | grep "^tcp\>" | awk ‘{print $NF}‘); do
                    if [ "$state" == ‘ESTABLISHED‘ ]; then
                    let estab++
                    elif [ "$state" == ‘LISTEN‘ ]; then
                    let listen++
                    else
                    let other++
                    fi
                done

echo "ESTABLISHED: $estab"
                echo "LISTEN: $listen"
                echo "Unkown: $other"

练习1:/etc/rc.d/rc3.d目录下分别有多个以K开头和以S开头的文件;
        分别读取每个文件,以K开头的文件输出为文件加stop,以S开头的文件输出为文件名加start;
            “K34filename stop”
            “S66filename start”

练习2:写一个脚本,使用ping命令探测172.16.250.1-254之间的主机的在线状态;

时间: 2024-10-23 12:59:33

bash脚本编程for的相关文章

bash脚本编程之条件判断、条件测试

脚本编程: 编程面向过程有如下几种执行方式 顺序执行 选择执行:  如 if, case 循环执行:  如 for, while, until bash的变量类型: 本地变量 set VAR_NAME=value 设置变量赋值 如: set User=Centos unset VAR_NAME 撤消变量赋值 如: unset User=Centos ${VAR_NAME} 作用范围:当前shell进程: 局部变量 local VAR_NAME=value 设置变量赋值 unset VAR_NAM

bash脚本编程之变量、变量类型、条件测试、算术运算、及特殊变量

一.学习目的 1.了解bash脚本的变量类型及变量的使用 2.了解bash中条件测试的种类及如何在bash中实现条件的判断 3.学会在bash中做算术运算 4.了解特殊变量的使用 二.学习内容 1). ①.bash的变量类型: 环境变量 .本地变量.局部变量.位置变量.特殊变量 环境变量: export VALUENAME = VALUE 作用领域是当前的shell进程及其子进程 本地变量: VALUENAME= VALUE 作用领域为整个bash的进程 局部变量:local VALUENAME

《高级Bash脚本编程指南》十年来首次修订

新年伊始,开源慕课的知识库上线了.初期提供了<Linux命令大全/Bash 参考><高级Bash脚本编程指南>两个系列.其他资料正将陆续上线. 其中,<高级Bash脚本编程指南>对于Shell学习者来说,是一本神一样的书籍. 它的原作者是Mendel Cooper,英文名叫<Advanced Bash-Scripting Guide>发表在http://tldp.org/ 上,是一本免费的书籍. 有人说,学习Unix/Linux,有座山叫shell编程,你总

bash脚本编程之用户交互

bash脚本编程之用户交互: read [option]... [name ...] -p 'PROMPT'    读取输入的内容 -t TIMEOUT    超时时间,如果超过了该时间,继续执行下面代码 bash -n /path/to/some_script 检测脚本中的语法错误 bash -x /path/to/some_script 调试执行 示例: 输入一个磁盘文件信息,使用fdisk -l显示该磁盘信息 #!/bin/bash read -p "Enter a disk specia

bash脚本编程基础

bash编程   bash脚本编程是过程式解释编程,其实就是linux命令的堆砌,既然是编程就应该有相应编程语法.    与任何过程式编程一样,过程式编程的特点就是:顺序执行,选择执行,循环执行.    过程式编程:以指令为中心,设计算法,数据服务于算法,过程式编程的灵魂:算法.    1.变量:数值变量,字符变量           bash环境:                本地变量:当前shell进程:                环境变量:当前shell进程及其子进程:       

压缩工具及bash脚本编程

回顾: RAID: 不同的服务器配置起来他的借口可能配置起来有所不同,但是官方一般都提供响应的说明书,按照说明书进行配置就行.关键是理解RAID级别的机制的意义是什么 LVM: 其实是一个逻辑设备他存在的主要作用是提供卷管理操作,我们称之为"volume", 卷管理操作的目的主要是实现把一个或多个底层的物理设备给组织成一个逻辑设备,我们可以将底层的任何类型的块设备,包括我们常见的基本磁盘分区,或者甚至是RAID都OK,只要他们提供块级别的存储空间,但是考虑到任何单个硬件设备他们的边界都

bash脚本编程之十 函数

bash脚本编程之十 函数详解 ·函数(function) function翻译成函数对于中文来讲不是特别的精确,因为function的真正意思是功能,理论上function这个英文单词既可以翻译成函数,又可以翻译成功能,但是我们数学意义上的函数和程序中的函数并不是同一个概念,所以我们如果把function称为功能可能会更合适一点,但是我们大家约定俗成通常都称其为函数,函数是实现结构化编程的一个重要思想,其主要目的是为了实现代码重用 ·库(library) 库是由一些共享对象(so->share

bash脚本编程的语法知识点总结第一部分

bash脚本编程的所有语法知识点总结第一部分 名词概念 bash脚本编程,从字面意思理解也就是shell脚本编程.bash应该是目前Linux上最流行的shell脚本解释程序.shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的.较复杂的系统管理任务,类似于Windows中的批处理文件. 1.shell脚本格式 第一行,顶格. eg: #!/bin/bash #!/usr/bin/python 其它的以#开头的行均为注释,会被解释器忽

bash脚本编程的语法知识点总结第二部分

bash脚本编程的语法知识点总结第二部分 承接第一部分进行总结分析 6.bash编程之交互编程 read -p"prompt" //提示 -ttimeout 给变量默认值 varName=${varName:-value} 如果varName不空,则返回varName的值:否则varName会使用value作为其值 使用read参数[-p]后,允许在[-p]后面跟一字符串,在字符串后面跟n个shell变量.n个shell变量用来接收从shell界面输入的字符串 [-p]用法:read