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
    }
    
  • 相关阅读:
    关于键保留表的一些汇总
    pl/sql,Oracle数据库中,不小心delete数据并提交后如何恢复被删数据
    创建视图的with check option选项。
    oracle中update,insert,delete的高级用法
    物化视图详解--介绍、创建方法、例子
    Oracle 视图备忘
    利用替换变量提高Oracle交互性(define)
    Sqlplus中的VARIABLE以及使用VARIABLE之后使用execute。
    Unity3d 引擎原理详细介绍
    Unity 3D主要特性和缺陷
  • 原文地址:https://www.cnblogs.com/cag2050/p/8206212.html
Copyright © 2011-2022 走看看