• 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前者大于等于后者()
  • 相关阅读:
    把redhat5.4-linux2.6.18内核升级到2.6.24 vmware虚拟机中
    webdeploy 使用总结(二)
    System.Web.UI.Page 详解(转)
    Dapper常用方法总结
    webdeploy 使用总结(一)
    Log4Net 详解(转)
    C# 日志工具汇总(转)
    Global.asax 详解(转)
    Transfer与Redirect区别(转)
    web.config配置节system.webServer的子元素详细介绍
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982083.html
Copyright © 2020-2023  润新知