• 《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”的行。

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

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

  • 相关阅读:
    软件工程2019实践第一次作业
    Maven环境的搭建
    TomCat控制台中文乱码及IDEA设置为UTF-8
    将win10永久激活为专业工作站版(图文详细教程)
    [软件技巧]manjaro gnome中修改屏幕缩放比例
    第一次个人编程作业
    百度的TTS API
    第一次软件工程实践作业
    MySQL触发器的操作
    Anaconda使用conda activate激活环境报错Your shell has not been properly configured to use 'conda activate'.
  • 原文地址:https://www.cnblogs.com/ruier/p/15321370.html
Copyright © 2020-2023  润新知