zoukankan      html  css  js  c++  java
  • 20191221第十章读书笔记

    sh与C
    sh是逐行解释的,不用main()函数,切入点为第一行,没有变量类型(或者说只有字符串),sh读取命令方式为读取若为内置命令则执行,否则复刻一个子进程执行
    sh脚本可以通过$0-$9访问命令行参数。一般$0为程序本身,$1-$n为程序的参数
    部分的内置变量
    $#=$1-$n的数量
    $*=所有参数,包括本身
    $S=执行sh程序的PID
    $?=最后一个命令的退出状态(成功为0否则不为0)
    变量赋值可以直接
    变量=值
    不用申明类型,如果A是一个变量,$A就是A的值
    sh中的引号为或‘’相当于C语言的双引号,一般单个字符,‘长字符串’,“$变量”(双引号会将其替换为$变量的值)
    sh有所有的linlux命令,还有许多内置命令如图:

    read命令用以用户和sh进行交互,类似于C的scanf
    sh遇到‘cmd’或者$(cmd)会先执行cmd,然后用执行结果替换$(cmd)
    if-else-fi语句:
    if[条件];then
    动作
    else
    动作
    fi
    复合条件与C相同,用&&与||,可以用()分组
    可以通过=,!=,<,>比较字符串
    sh中0为TRUE,非0为FALSE
    -eq,-e name之类的文件也可以作为整数比较或者测试文件属性
    for语句:
    for 变量 in 值1 值2 ... 值n
    do
    动作
    done
    white语句:
    while[条件]
    do
    动作
    done
    条件为真的时候执行动作
    do-until语句
    until[条件]
    do
    动作
    done
    类似于C的do-until
    case语句:
    case $变量 in
    值1) 动作;;
    值2) 动作;;
    esac

    continue和break与C语言相同
    '>file stdout转向文件,弱不存在则创建'
    '>>file stdout追加到文件'
    '<file 将文件作为stdin;文件必须具有r权限'
    '<<word 从“here”文件读取输入,直到只包含“word”的行'
    sh的函数
    函数名()
    {
    函数内容
    }
    sh无法申明函数原型,所以调用方式和脚本文件执行方式相同
    func s1 ... sn以参数形式传递s1~sn
    通配符:*具体使用参考示例

    一个语言需要学习其语法的各个细节,各种禁忌,还有其用处
    在sh中,介绍了语法,然后最后给出了使用的实例(用于解决冗长的代码)然后是禁忌,比如提到的<file需要r权限,不能申明类型所以需要用特殊的方式比较等等

  • 相关阅读:
    “Clang” CFE Internals Manual---中文版---"Clang"C语言前端内部手册
    LLVM每日谈之十七 LLVM/Clang的学习的思考
    Using Clang as a Library----Choosing the Right Interface for Your Application---翻译
    IT人员必备技能之Over the Wall.
    离散傅立叶变换之听声音破解电话号码
    Google Summer of Code: C++ Modernizer Improvements----Monday, November 18, 2013
    Design: cpp11-migrate
    C++11 迁移器的状态--2013年4月15日
    购物系统③完结篇
    (转)Eclipse中junit框架的使用——单元测试
  • 原文地址:https://www.cnblogs.com/ginjzlbg/p/15339606.html
Copyright © 2011-2022 走看看