zoukankan      html  css  js  c++  java
  • 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 本章总结

  • 相关阅读:
    php多态
    ssl certificate problem: self signed certificate in certificate chain
    test plugin
    open specific port on ubuntu
    junit vs testng
    jersey rest service
    toast master
    use curl to test java webservice
    update folder access
    elk
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2378198.html
Copyright © 2011-2022 走看看