zoukankan      html  css  js  c++  java
  • 《Unix/Linux系统编程》第十章学习笔记

    sh编程

    本章讨论了sh编程,阐述了sh脚本和不同版本的sh;比较了sh脚本与C程序,并指出了解释语言和编译语言的区别;详细说明了如何编写sh脚本,包括sh变量、sh语句、sh内置命令、常规系统命令和命令替换;解释了sh控制语旬,包括测试条件、for循环、 while 循环、do-until循环、case语句等;说明了如何编写 sh 函数以及使用参数调用 sh 函数。

    sh脚本

    sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。

    sh脚本与C程序

    这两者之间有一些相似之处,但在根本上是不同的。
    sh是一个解释程序,逐行读取脚本文件并直接执行这些行。如果行是可执行命令且为内置命令,那么sh可直接执行。否则,他会复刻一个子进程来执行命令,并等其终止后再继续。
    C语言必须先编译连接到一个二进制可执行文件,然后通过sh的子程序运行。

    命令行参数

    可使用与运行sh命令完全相同的参数调用sh脚本。

    $#=命令行参数$1到$n的数量
    $*=所有命令行参数,包括$0
    $S=执行sh的进程PID
    $?=最后一个命令执行的退出状态(成功为0)

    sh中的引号

    想要把特殊字符用作普通字符,可使用或单引号。

    sh命令

    • .file :读取并执行文件。
    • break [n]:从最近的第 n 个嵌套循环中退出。
    • cd [dirname]:更换目录。
    • continue [n]:重启最近的第 n 个嵌套循环。
    • eval [arg...]:计算一次参数并让sh执行生成的命令。
    • exec [arg...]:通过这个 sh 执行命令, sh 将会退出。
    • exit[n]:使 sh 退出,退出状态为 n 。
    • export [var...]:将变量导出到随后执行的命令。
    • read [var...]:从 stdin 中读取一行并为变量赋值。
    • set [arg...]:在执行环境中设置变量。
    • shift :将位置参数$2 $3...重命名为$1 $2...
    • trap [arg[n]:接收到信号 n 后执行参数。
    • umask [ ddd ]:将掩码设置为八进制数 ddd 的。
    • wait [pid];等待进程 pid ,如果没有给出 pid ,则等待所有活动子进程。
    • read 命令:当 sh 执行 read 命令时,它会等待来自 stdin 的输入行。它将输人行划分为几个标记,分配给列出的变量。

    sh控制语句

    if-else-if语句

    test string1 COMP string2 OR [string1 COMP string2]
    除了比较字符串或数值,还可以测试文件操作中的文件类型和文件属性。

    for语句
    点击查看代码
     for VARIABLE in string1 string2...stringn
       do
          commands
       done
    
    while语句
    点击查看代码
     while [confition]
        do
          commands
        done
    

    I/O重定向

    当进入sh命令时,我们可以指示sh将I/O重定向到除默认文件意外的文件。
    >file stdout转向文件,如果文件不存在,将会创建文件。
    >>file stdout追加到文件。
    <file 将文件用作stdin;文件必须存在并具有r权限。
    <<word 从“here”文件中获取输入,直到只包含“word”的行。

    学习一门程序设计语言有哪些必备的要素和技能?

    我认为学习程序设计语言必需的技能是实践与纠错。实践让我们对于语法以及相关的知识点印象更加深刻,完成一项任务后需要纠错与反思,如果有能力的话要进行改进。这样的过程才会将一门语言融会贯通。

  • 相关阅读:
    笔记35 跨重定向请求传递数
    判断邮箱的正则表达式
    按钮
    async await 的用法
    笔记34 Spring MVC的高级技术——处理multipart形式的数据
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Unique Binary Search Trees,Unique Binary Search Trees II
    Validate Binary Search Tree
    Populating Next Right Pointers in Each Node,Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/ruier/p/15321370.html
Copyright © 2011-2022 走看看