zoukankan      html  css  js  c++  java
  • 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前者大于等于后者()
  • 相关阅读:
    放弃antd table,基于React手写一个虚拟滚动的表格
    思考:声明式编程与命令式编程
    前端入门指南(菜鸟篇-下)
    前端入门指南(菜鸟篇-上)
    centos7 磁盘管理—— lvm的使用
    Linux 用 sftp scp命令 互传文件
    linux 通过md5查找重复文件
    Linux sort uniq 命令。简单运用
    Linux sed 命令
    shell 脚本,将/etc/目录下所有的软链接文件输出
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982083.html
Copyright © 2011-2022 走看看