• Linux程序设计读书笔记:第二章 shell程序设计


    2.1 什么是shell

    • 解释型语言,不适合用来完成对执行时间比较挑剔或者处理器符合比较大的工作
    • shell是一个做为用户与UNIX系统之间的操作接口的程序,文件的重定向只要使用"<"和"》"就行,管道用一个"|"就能代表,子进程的输出是"$(...)",所有这些的具体细节都早已为用户准备好了。

    2.2 管道和重定向

    2.2.1 对输出数据进行重定向

    • $ls -l > lsoutput.txt,这条命令将ls命令的输出保存到一个名为lsoutput.txt的文件里去
    • $ps >> lsoutput.txt,这条命令将把ps命令的输出追加到文件尾部
    • 文件描述符0代表一个程序标准输入,文件描述符1代表一个程序标准输出,而文件描述符2代表一个程序标准错误输出

    2.2.2 对输入数据进行重定向

    • 不仅能重定向输出信息,还可以重定向输入数据,如$ more < killout.txt

    2.2.3 管道

    • 可以用管道操作符"|"把进程连接在一起,UNIX不同于DOS,用管道连接在一起的进程可以同时运行,并会随着数据流在它们之间的流动而自动协调

    2.3 可以被视为程序设计语言的shell

    2.3.1 交互式程序

    2.3.2 编写脚本程序

    • 程序中的注释以一个"#"符号开始,一直持续到该行的结束
    • 在shell程序设计里,exit命令返回"0"表示成功
    • UNIX一般很少通过文件的扩展名来确定文件的类型,可以完全省略".sh",或者给它加上一个不同的扩展名,shell是不关心的,要想知道它们是否是脚本程序,最好的方法就是使用file命令,比如 "file first.sh"

    2.3.3 把脚本设置为可执行程序

    • 用chmod命令对已写好的脚本文件的状态(mode)进行修改,是这个文件能够被全体用户执行,$ chomd +x first.sh

    2.4 shell程序设计的语法

    2.4.1 变量

    • 在shell里,使用变量之前并不需要事先对它们做出声明。在默认情况下,所有变量都被认为是并保存为字符串,即使它们被赋值为数值时也是如此。shell和其它一些工作程序会把"数值"型字符串依次转换为正确的数值,并且按照正确的方式对它们进行操作。

    • 因为UNIX是一个区分字母大小写的系统,shell中依旧如此

    • 在shell里,在变量名前面加上一个"$"字符就可以获得它的内容,echo命令就可以输出它的内容。只要用到变量,我们就可以在它前面加上一个"$"字符,除非我们是在对该变量进行赋值操作。注意,如果字符串里包含着空格,就必须用引号把它们括起来,还要注意等号两边不能有空格。

    $salutation=Hello
    $echo $salutation
    Hello
    $salutation="Year Dear"
    $echo $salutation
    Year Dear
    $salutation=7+5
    $echo $salutation
    7+5


    2.4.2 条件测试

    2.4.3 控制结构

    2.4.4 函数

    2.4.5 命令

    2.4.6 命令的执行

    2.4.7 即时文档

    2.4.8 调试脚本程序

    2.5 shell程序设计示例

    2.5.1 工作需求

    2.5.2 设计

    2.6 本章总结

  • 相关阅读:
    linux系统的nobody用户
    java包命名规则
    配置文件解析
    jps参数
    Java数据类型总结
    JSON与JAVA数据的相互转换
    maven中使用net.sf.json-lib
    设计 REST 风格的 MVC 框架
    Java 5种字符串拼接方式性能比较
    spring获取webapplicationcontext,applicationcontext几种方法详解
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2309947.html
Copyright © 2020-2023  润新知