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前者大于等于后者()
  • 相关阅读:
    射极跟随器的设计及参数确定
    三极管放大电路 之共射放大电路参数确定
    allegro生成光绘文件时,通过cam打开,*.drl钻孔文件不识别,为Unknow类型
    allegro 16.6 空心焊盘的制作
    cadence16.6 如何对齐元件
    Allegro中板子边框不封闭导致的z-copy无法用的问题
    Android Thermal-engine
    《万历十五年》--黄仁宇
    USB 接口探测分类
    Android电池电量跳变
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982083.html
Copyright © 2011-2022 走看看