• shell的控制流程语句


    shell分为两大类:

    Bourne shell (包括 sh, ksh, bash):Bourne shell ( sh),Korn shell ( ksh),Bourne Again shell ( bash),POSIX shell ( sh)。

    C shell (包括 csh and tcsh):C shell ( csh),TENEX/TOPS C shell ( tcsh)。

    shell调试:常用echo打印变量值;真实的调试模式-sh -x shellscript.sh,执行脚本并打印所有变量的值;只检查语法的调试模式-sh -n script.sh,返回语法错误。

    流程控制语法如下:

    #if语句
    if...;then
    ...
    elif..;then
    ...
    else
    ...
    fi
    #case语句
    case...in
    ..) something;;
    esac
    #select语句,与用户进行交互
    select var in...;do
    ...
    ...$var can be used...
    done
    ...$var can be used...
    #while循环
    while [ 条件1 ]
    do
    ...
    done
    #until
    until [ 条件 ]
    do
    done
    #for循环
    for (( 条件1; 条件2; 条件3 ))
    do
    done
    for var in...
    do
    ...
    done


    注意的是:select是bash的一个扩展应用,所以头语句应该为“#!/bin/bash”,否则select无法使用。select的效果是列出变量,等待用户选择。

    补:与用户进行交互,除了select,还有read命令,用法“read var”,获得用户的输入并赋值给变量var。

    if/while中的条件判断通常使用“[]”来进行条件测试

    [ -f "xx" ]:判断是否为一个文件

    [ -x "xx" ]:判断是否可执行

    [ -n "$var"]:判断var是否有值

    [ "$a"="$b"]:判断变量a和b是否相等

    其他有对文件的测试还有:

    -d目录

    -s文件非空

     
    -f正规文件
    -w可写
    -L符号链接
    -u文件有suid设置
    -r可读
    -x可执行

     对字符串的测试还有: 

    !=两个字符串不相同
    -z空串

    对数值的测试有:
    -eq数值相等(=)  -ne 数值不相等(!=)
    -gt 前者大于后者 (>)  -lt  前者小于后者(<)
    -le 前者小于等于后者 ()-ge前者大于等于后者()
  • 相关阅读:
    demo16-打印名字
    demo15-获取标签里面的值
    bufferedReader 读取文件第一行第一个字符丢失问题
    Python的逻辑控制true/false和循环
    python中的对文件的读写
    Python初学习:简单的练习题
    VMware安装的Linux系统忘记密码 怎么修改root密码
    ZooKeeper伪分布式集群安装及使用
    Jersey实现跨服务器上传图片:UniformInterfaceException:403 Forbidden
    Spring中的一些面试题
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982083.html
Copyright © 2020-2023  润新知