zoukankan      html  css  js  c++  java
  • shell 知识点

    • shell 开发与其他语言的区别项:
    区别项 说明
    定义变量,变量名前不加美元符号;使用变量,必须在变量名前加美元符号
    定义变量时,变量名和等号之间、等号与变量值之间,都不能有空格
    表达式和运算符之间要有空格
    shell 的流程控制不可为空
    关系运算符(-eq、-ne等)只支持数字,不支持字符串,除非字符串的值是数字
    字符串运算符(=、!=等) “=”:检测两个字符串是否相等
    特变逻辑运算符”[]”,必须保证运算符与算数之间有空格
    双括号”(())”运算符,可以取代 [[]]、[]、test、let、expr
    调用函数仅使用其函数名即可
    在函数体内部,通过 ${n} 的形式来获取参数的值。注意:当n>=10时,比较加大括号(使用${n})来获取参数
    函数返回值在调用该函数后通过 $? 来获得
    • 文件描述符
    文件描述符 含义
    0 标准输入(STDIN)
    1 标准输出(STDOUT)
    2 标准错误输出(STDERR)
    • 双括号”(())”运算符
      语法:
    ((表达式1,表达式2…))
    

    特点:
    1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。
    2、在双括号结构中,所有变量可以不加入:“$”符号前缀。
    3、双括号可以进行逻辑运算,四则运算
    4、双括号结构 扩展了for,while,if条件测试运算
    5、支持多个表达式运算,各个表达式之间用“,”分开

    • 报错:使用expr index命令,报错:expr: syntax error
      解决:mac 中没有expr index命令,官方回答:https://discussions.apple.com/thread/923299

    • 报错:语句if test $num1 eq $num2报错:eq: binary operator expected
      解决:关系运算符前面要有分隔符“-”

    • shell 中的注释

    1. 单行注释
    # 单行注释
    
    1. 多行注释
    # 第1种
    : '
    语句1
    语句2
    语句3
    '
    # 第2种
    : << 字符  #这里的字符可以是数字或者是任意字符都可以
    语句1
    语句2
    语句3
    字符
    # 第3种
    if false; then
    语句1
    语句2
    语句3
    fi
    # 第4种
    ((0)) && {
    语句1
    语句2
    语句3
    }
    
  • 相关阅读:
    11gR2新特性:STANDBY_MAX_DATA_DELAY
    ASM file metadata operation等待事件
    Slide:配置GoldenGate同步DDL语句
    C++中Static作用和使用方法
    LPARAM类型转化为CString类型
    Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR
    C++ inline函数 介绍
    C++ 注册表编程
    C++中L和_T()之区别
    枚举的访问方式
  • 原文地址:https://www.cnblogs.com/cag2050/p/8206212.html
Copyright © 2011-2022 走看看