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权限,不能申明类型所以需要用特殊的方式比较等等

  • 相关阅读:
    Pandas怎样按条件删除行?
    分享一个百度大牛的Python视频系列下载
    Python的几个高级编程技巧
    Pandas系列-读取csv/txt/excel/mysql数据
    判断质数
    mac命令行光标操作快捷键
    私有Docker部署GitLab重置管理员密码
    noip2012借教室
    乘法逆元
    noip2008T2 火柴棒等式
  • 原文地址:https://www.cnblogs.com/ginjzlbg/p/15339606.html
Copyright © 2011-2022 走看看