首页 > 其他分享 >学习笔记三

学习笔记三

时间:2023-09-24 14:11:20浏览次数:37  
标签:... 变量 笔记 学习 sh 参数 ls 执行

一、任务详情

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

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

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

    • 问题与解决思路(2分)

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

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

二、学习程序设计语言必备的要素和技能

  一门程序设计语言通常需要以下必备要素和技能:

  1. 数据结构和算法:掌握常见的数据结构(如数组、链表、栈、队列)和算法(如排序、搜索、递归)。

  2. 输入和输出:能够处理输入数据和生成输出结果,包括文件操作、用户输入等。

  3. 函数和模块化编程:学会定义和调用函数,实现模块化编程,提高代码的可维护性和复用性。

  4. 错误处理和异常处理:处理程序中可能出现的错误和异常情况,确保程序稳定性。

  5. 调试和测试:使用调试工具和编写测试用例来诊断和修复代码中的问题。

  6. 数学思维:程序是我们处理一件“事情”的流程的程序化表示,流程体现逻辑,或者可以说算法体现逻。

  上述这些能力在sh编程中也都有比较好的体现。

三、教材内容归纳整理

  1. 基本概念

  sh脚本是一个包含sh语的文本文件,命令解释程序sh 要执行该语句。例如,我们可以创建一个文本文件mysh,包含:

  #! /bin/bash

  # comment line

  echo hel1o

  使用chmod +xmysh 使其可执行。

  2. sh脚本和C语言的关系

    存在相似之处,但本质不同。 首先,sh是一个解释程序,逐行读取sh脚本文件并直接执行这些行。如果行是可执行命令且为内置命令,那么sh可直接执行。否则,它会复刻    一个子进程来执行命令,并等待子进程终止后再继续,这与它执行单个命令行完全一样。 相反,C程序必须先编译链接到一个二进制可执行文件,然后通过主sh的子进程运行二进制可执行文件。其次,在C程序中,每个变量必须有一个类型,例如char、int、float、派生类型(如struct结构体类型)等。相反,在sh脚本中,每个变量都是字符串。因此不需要类型,因为只有一种类型,即字符串。最后,每个C程序必须有一个main()函数,每个函数必须定义一个返回值类型和参数(如有)。相反,sh脚本不需要main函数。在sh脚本中,第一个可执行语句是程序的入口点。

  3. 命令行参数

  在sh 脚本中可以通过位置参数 $0、$1、$2等访问命令行参数。前10个命令行参数可以作为$0~$9 被访问。其他参数必须称为${10}~${n},其中n>10。或者,可以通过稍后显示的shift命令查看它们。通常,$0是程序名本身,$1到$n是程序的参数。在sh中,可用内置变量 $#和$*计数并显示命令行参数

  $#=命令行参数SI到Sn的数量
  $*=所有命令行参数,包括$O
  此外,sh 还有与命令执行相关的以下内置变量。
  $S执行sh的进程PID
  $?=最后一个命令执行的退出状态(如果成功,则为 0,否则为非0)

  4. sh变量

  sh 有许多内置变量,如PATH、HOME、TERM等。除了内置变量外,用户还可使用任何符号作为sh变量。不需要声明。所有的sh变量值都是字符串。未赋值的sh变量是NULL字符串。sh变量可用以下方法设置或赋值:

  variable=string         # NOTE: no white spaces allowed between tokens

  5. 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,则等待所有活动子进程

  6. sh中的引号

  sh有许多特殊字符,如S、/、*、>、<等。要想把它们用作普通字符,可使用\或单引号来引用它们。通常,‘\’用于引用单个字符。单引号用于引用长字符串。单引号内没有替换。双引号用于保留双引号字符串中的空格,但在双引号内会发生替换。

  7. sh语句

  sh语句包括所有Unix/Linux命令,以及可能的I/O重定向。此外,sh编程语言还支持控制sh程序执行的测试条件、循环、case等语句。

  8. sh中的通配符

  • 星号通配符

    • file *:列出当前目录中所有文件的信息

    • ls *.c:列出当前目录中所有以.c结尾的文件

  • 问号通配符

    • file ???:有3个字符的所有文件名

    • ls *.??: 一个.后有2个字符的所有文件名

  • []通配符

    • file [ab]:包含字符a或b的所有文件名

    • ls [xyz]:列出所有包含x、y或z的文件名

    • ls [a-m]:列出包含a到m范围内字符的所有文件名

  9. 思维导图

四、实践内容与截图

1. 执行外部指令:ls -al

2. 执行外部指令:ls -l

3. 用Shell脚本求1到100之间数字的

4. echo运用

 

 

 

标签:...,变量,笔记,学习,sh,参数,ls,执行
From: https://www.cnblogs.com/llwwjj/p/17725827.html

相关文章

  • 学习笔记3
    第十章sh编程1.一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如何呈现出来的?-要素:数据类型、常量、变量、运算符、表达式、标识符、关键字、数组、基本控制结构、函数、输入和输出、解释器和编译器-技能:数据结构分析和设计算法分析和设计系统......
  • 《信息安全系统设计与实现》第三周学习笔记
    《信息安全系统设计与实现》第三周学习笔记第十章sh编程sh脚本sh脚本是一个包含sh语句的文本文件,命令行解释程序sh要执行该语句。例如创建一个文本文件mysh,包含:#!/bin/bash#commentlineechohello用chmod+xmysh使其可执行sh脚本与C程序sh是一个解释......
  • x86汇编学习
    sal为算术左移,保持符号位不变。shl为逻辑左移,为无符号左移,最高位直接被次高位覆盖。对应的右移分别为sar,shr。参考[https://blog.csdn.net/deniece1/article/details/](https://blog.csdn.net/deniece1/article/details/103274744#汇编语言中sal(算术左移指令)和shl(逻辑左移指......
  • Oracle process/session/cursor/tx/tm的简单学习
    Oracleprocess/session/cursor/tx/tm的简单学习Oracle的部署模式Oracle安装时有专用模式和共享模式的区别共享模式(Sharedmode):在共享模式下,会话可以同时读取数据库的数据,多个会话可以并发地进行读取操作。这意味着多个会话可以共享相同的数据快照,并且彼此之间不会阻塞。......
  • 学习笔记1
    知识点ubuntulinux的使用unix/linux常用命令ls:lsdirname:列出CWD或目录的内容cddirname:更改目录pwd:打印CWD的绝对路径名touchfilename:更改文件名时间戳(如果文件不存在,则创建文件)catfilename:显示文件内容cpsrcdest:复制文件mvsrcdest:移动或重命名......
  • 学习笔记2
    第九章I/O库函数一.知识点归纳(一)I/O库函数与系统调用系统调用函数:open()、read()、write()、lseek()、close()I/O库函数:fopen()、fread()、fwrite()、fseek()、fclose()二者区别:在系统调用程序中,文件描述符fd是一个整数。在库I/O程序中,fp是一个文件流指针。系统调用ope......
  • 高级系统架构师学习(八)嵌入式系统
    一、嵌入式系统概述基本概念1、将可配置与可裁剪的软硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。2、指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能。体积小、结构紧凑,可作为一个部件埋藏于......
  • vue笔记
    一、vue项目vscode自动import,VUE组件和ts模块1、在vscode插件市场安装vetur插件2、修改tsconfig.json文件将moduleResolution改为node3、重启vscode,后面再下代码就可以自动import了。二、vue项目中使用elementplus参考elementplus官网:https://element-plus.org/zh-CN/guide/desig......
  • 【机器学习 | 分类指标大全】全面解析分类评估指标:从准确率到AUC,多分类问题也不在话下
    ......
  • 第三周学习笔记
    sh编程1.sh脚本Shell脚本是一种用于在Unix、Linux和其他类Unix系统上编写和执行命令序列的脚本语言。它使用Shell解释器(如sh、bash、csh等)来解释和执行脚本。Shell脚本可以包含一系列命令、控制结构、变量和函数,用于完成特定的任务或自动化一系列操作。通过编写Shell脚本,你可以......