zoukankan      html  css  js  c++  java
  • 第十章学习笔记

    自学教材第10章,提交学习笔记(10分)

    大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?

    知识点归纳以及自己最有收获的内容 (3分)

    问题与解决思路(2分)

    实践内容与截图,代码链接(3分)

    ...(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(2分)

    大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?

    语法,语义,类库~~~这就是一门语言~
    得到数据,处理数据,发出数据~~~这就是一个函数~
    一门程序设计语言,作为语言,需要先掌握语法语义类库,并加上不同函数的组合,就能实现各种功能。数据结构和函数库的调用可以实现功能更加丰富,性能更加强大的程序。
    shell脚本中变量均为字符串,经过选择、循环、函数的调用即可完成不同种功能。通过对本章节的学习,我认为将sh与c结合对比学起来效率更高,当然也需要对着示例亲手敲代码才能较牢固的掌握理解。

    知识点归纳:

    sh脚本:一个包含sh语句的文本文件,命令解释程序sh要执行该语句。
    sh:一个解释程序,逐行读取sh脚本文件并直接执行这些行。变量类型:字符串。

    命令行参数
    $# = the number of command-line parameters $1 to $n
    $* = ALL command-line parameters, including $0
    In addition, sh also has the following built-in variables related to command executions.
    $$ = PID of the process executing the sh
    $? = last command execution exit status (0 if success, nonzero otherwise)
    

    sh内置变量:PATHHOMETERM

    变量设置与赋值示例:

    特殊字符的打印:前面加 or ‘ ’

    sh语句:包括所有Unix/Linux命令,以及可能的I/O重定向

    常用的内置命令:

    Read命令:当sh执行read命令时,它会等待来自stdin的输入行。

    Linux命令:

    1. echo命令:将参数字符串作为行回显到stdout。通常将相邻的多个空格压缩为一个空格。

    2. expr命令:因为所有的sh变量都是字符串,所以我们不能直接把它们改为数值,可调用expr程序改变变量的<数值>
      expr string1 op string2

    3. 管道命令:在sh脚本中经常使用管道作为过滤器

    实用命令:

    命令替换:echo $(cmd), $A会被替换成A的值

    sh控制语句

    if-else-fi:

    for:

    while:

    until-do:

    case:

    continue:As in C, continue restarts the next iteration of the nearest loop and break exits the nearest loop. They work exactly the same as in C

    通配符

    file *:列出当前目录中所有文件的信息
    ls *.c:列出当前目录中所有以.c结尾的文件
    file ???:有3个字符的所有文件名
    ls *.???:一个点号,后有两个字符的所有文件名
    []:查询文件名中一对[]中的字符

    调试sh脚本则由带有-x选项的子sh运行

    I/O重定向

    当进入sh命令时,我们可以指示sh将I/O重定向到除默认stdin、stdout和sterr以外的文件。I/O重定向有以下形式和含义:

    sh函数

    func()
    {
         #function code
    }
    

    sh调试

    sh脚本可由带有-x选项的子sh运行,以进行调试,如:
    bash -x mysh

    sh应用

    sh脚本最常用于执行涉及冗长命令序列的常规作业。如:Linux安装包是用sh脚本编写的,安装过程中可与用户交互
    脚本简化重复的工作

    问题与解决思路:

    设置断点时,将其设置在while循环中p==3的位置时候,出现function not defined 的情况
    解决方法:gdb条件调试一般应用在循环、链表的遍历、或者其他变量的值可能被多次改变的场合。我在条件变量p的作用域外设置断点,这样会导致断点设置无效,应该对链表设置的值while p->next进行判断。

    星光荡开宇宙
  • 相关阅读:
    硬盘
    [编译] 6、开源两个简单且有用的安卓APP命令行开发工具和nRF51822命令行开发工具
    [编译] 5、在Linux下搭建安卓APP的开发烧写环境(makefile版)—— 在Linux上用命令行+VIM开发安卓APP
    [Zephyr] 1、在linux上安装Zephyr-OS并跑DEMO
    [编译] 4、在Linux下搭建nRF51822的开发烧写环境(makefile版)
    [BlueZ] 2、使用bluetoothctl搜索、连接、配对、读写、使能notify蓝牙低功耗设备
    [BlueZ] 1、Download install and use the BlueZ and hcitool on PI 3B+
    [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)
    [ARCH] 1、virtualbox中安装archlinux+i3桌面,并做简单美化
    [编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
  • 原文地址:https://www.cnblogs.com/pogbar/p/15334393.html
Copyright © 2011-2022 走看看