• Linux基础(6)


    Linux基础(六)

    shell脚本中的三大循环和函数知识点

    一、流程控制之if结构

    1.简单的if实例:

    #!/bin/bash
    var='/etc/init.d'
    #var='/dev/sda'
    if [ -d $var ]
        then
            echo "$var is directory"
    elif [ -b $var ]
        then
            echo "$var is block"
    elif [ -f $var ]
        then
            echo "$var is regular file"
    else
            echo 'unknow'
    fi
    View Code

    执行效果:

    2.向脚本传递参数

    eg:

    #3.sh
    echo $0
    echo $1
    echo $2
    echo $3
    echo ${11}
    echo '$$' $$
    echo '$*' $*
    echo '$@' $@
    echo '$#' $#
    echo '$?' $?
    View Code

    测试结果:

    [root@localhost ~]# ./3.sh 1 2 3 4 5 6 7 8 9 10
    ./3.sh
    1
    2
    3
    
    $$ 8755
    $* 1 2 3 4 5 6 7 8 9 10
    $@ 1 2 3 4 5 6 7 8 9 10
    $# 10
    $? 0
    View Code

    二.循环结构之while

    while (条件)

    do
    动作
    done

    需要无限循环时我们会选择while :
    写个脚本 让用户输入,输入数字通过,输出错误重新输入

    #!/bin/bash
    login=0
    while [ $login != 1 ]
    do
        read -p 'please input your name: ' name
        read -p 'please input your password: ' pwd
        if [ $name == 'egon' ] && [ $pwd == '123' ]
            then
                echo 'login sucessful'
                login=1
        fi
    done
    View Code

    运行及查看结果:

    [root@localhost ~]# ./4.sh
    please input your name: egon
    please input your password: 123
    login sucessful
    [root@localhost gandong]# 
    View Code

    三、循环结构之for

    shell格式的for

    for i in {1..10}
    do
    echo $i
    done
    View Code
    [root@localhost ~]# ./5.sh 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    View Code

    应用循环和条件判断写的一个实例:

    vim 6.sh
    
    while :
    do
    
        read -p 'please input your name: ' name
        read -p 'please input your password: ' psd
        if [-z $name ] || [-z $psd ]
            then
                continue
        fi
        if [ $name = 'alex'  -a $psd = 'alex3714' ]
            then
                echo 'login successful ,welcome da SB'
                while :
                do
                    read -p 'please input your cmd: ' cmd
                    if [ $cmd = 'quit' ]
                        then
                            break
                    fi
                    $cmd
                done
        else      
            echo 'username or password is error'
        fi
    done
        
    echo '========================================================'
        
    ~                                                   
    View Code

    四、函数知识点

    交互shell中的函数

    eg:

    vim 7.sh
    function abc() {
     echo 'aaa';echo 'bbbb';
     }
    abc
    View Code

    运行结果:

    [root@localhost ~]# vim 7.sh
    [root@localhost ~]# ./7.sh
    aaa
    bbbb
    View Code
  • 相关阅读:
    元组类型内置方法
    列表类型内置方法
    字符串类型内置方法
    转:【英语学习材料】
    转:【15年学不会英语的原因】
    转:【Java动态编程(Javassist研究)】
    转:【进制转换-概念】
    c语言学习笔记
    virtualbox虚拟机桥接方式网络设置
    navicat连接mysql8报错,错误提示为1251,原因及解决步骤
  • 原文地址:https://www.cnblogs.com/haishiniu123/p/6685075.html
Copyright © 2020-2023  润新知