首页 > 其他分享 >第十章学习笔记

第十章学习笔记

时间:2023-09-24 17:37:25浏览次数:35  
标签:语句 文件 第十章 笔记 echo 学习 命令 sh 参数

第九章学习笔记

一、课本知识

1.sh脚本

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

2.sh脚本与C程序

- sh:

(1)sh是一个解释程序,逐行读取sh脚本文件并直接执行这些行。
(2)sh脚本中,每个变量都是字符串。
(3)sh脚本不需要main函数,第一个可执行语句是程序的入口点。

- C程序:

(1)C程序必须先编译链接到一个二进制可执行文件,然后通过主sh的子进程运行二进制可执行文件。
(2)在C程序中,每个变量必须有一个类型,例如char、int、float、派生类型(如struct)等。
(3)必须拥有一个main()函数,每个函数必须定义一个返回值类型和参数(如有)。

3.命令行参数

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

S#=命令行参数$1到$n的数量

$*=所有命令行参数,包括$0

此外,sh还有与命令执行相关的以下内置变量。

$S =执行sh的进程PID

$?=最后一个命令执行的退出状态(如果成功,则为0,否则为非0)

在sh中,特殊字符$表示替换,注意需要添加转义符‘\’。

4.sh变量

  • 内置变量:PATH、HOME、TERM

  • 任何符号,未赋值的为NULL

  • 变量设置或赋值
    variable=string

5.sh中的引号

用\或单引号来把$、/、*、>、<等用作普通字符。

   A=xyz
   echo $A
   echo '$A'
   echo "see $A"

6.sh语句

  • 所有Unix/Linux命令

  • 可能的I/O重定向

7.sh命令

1.内置命令

.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的输入行。

2.Linux命令

  • echo命令:echo只是将参数字符串作为行回显到stdout。通常将相邻的多个空格压缩为一个空格,除非有引号。

  • expr命令:将两个参数字符串转换为数字,然后对数字执行(二进制)操作OP,再将得到的数字转换回字符串。

expr string1 OP string2

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

  • 实用命令:

axk:数据处理程序。

cmp:比较两个文件。

comm:选择两个排序文件共有的行。

grep:匹配一系列文件的模式。

diff:找出两个文件的差异。

join:通过使用相同的键来连接记录以比较两个文件。

sed:流或行编辑命令。

sort:排序或合并文件。

tail:打印某个文件的最后口行。

tr:一对一宇符翻译。

uniq:从文件中删除连续重复行。

8.命令替换

echo $(date)
echo $(ls dir)

9.sh控制语句

sh是一种编程语言,支持许多执行控制语句,类似于C语言中的语句。

1.if-else-fi语句

if [condition]
   then
     statemates
   else
     statements
fi

每个语句必须在单独的一行(要写到同一行也可以在多个语句之间用分号分开)

2.for语句

for VARIABLE in string1 string2 ... stringn
      do
        commands
      done

3.while语句

while [condition]
    do 
      commands
    done

4.until-do语句

until [$ANS = "give up"]
    do
      echo -n "enter your answer"
      read ANS
    done

5.case语句

case $variable in
    pattern1)  commands;;
    pattern2)  command;;
    patternn)  command;;
  esac

6.continue和break语句

  • continue:重启最近循环的下一个迭代。

  • break:退出最近循环。

工作原理与C语言完全相同

10.I/O重定向

  • file:stdout转向文件,如果文件不存在,将会创建文件。

  • file:stdout追加文件。

  • <file:将文件用作stdin;文件必须存在并具有r权限。

  • <<word:从“here”文件中获取输入,直到包含“word”的行。

11.sh函数

func()
{  
  # function code
}

12.sh中的通配符

1.星号通配符:可扩展到当前目录中的所有文件,是最有用的通配符。

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

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

2.通配符:查询某文件名中的字符。

file ???:有三个字符的所有文件名。

ls *.??:点号后有2个字符的所有文件名。

3.通配符:查询文件名中一对[]中的字符。

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

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

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

二、知识点挑战

sh控制程序




sh脚本与c程序



标签:语句,文件,第十章,笔记,echo,学习,命令,sh,参数
From: https://www.cnblogs.com/kcf2003/p/17726265.html

相关文章

  • 信息安全系统设计与实现 学习笔记3
    一、总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?一门程序设计语言的必备要素和技能包括:语法:掌握语言的基本语法,包括变量、数据类型、运算符、流程控制语句、函数、类等。算法和数据结构:能够设计和实现常用的算法和数据结构,如......
  • flex布局笔记
    一、认识flex布局认识flexbox:弹性盒子是一种用于按行或按列布局元素的一维布局方法;元素可以膨胀一填充额外的空间,收缩一适应更小的空间;通常我们使用flexbox来进行布局的方案之为flex布局(flexlayout);flex布局的重要概念开启了flex布局的元素叫flexcontainerflexcontai......
  • 学习笔记3
    程序设计语言必备要素和技能对于Python、C和Java这三门常见的编程语言,它们都有一些共同的必备要素和技能。语法和语义:编程语言的语法和语义是这个语言的基础。这包括了熟悉变量、数据类型、运算符、控制流程等基本语法结构,以及了解编程语言的特性和约束。数据结构与算法:了......
  • SpringCloud微服务学习笔记(一)
    微服务介绍用于开发大型项目时,将所有代码都放在一个项目中会增加压力,而且单体架构的并发数也有限,占用的线程多的时候就不行了。这时就需要用到微服务分布式开发。单体架构(monolithicstructure):顾名思义,整个项目中所有功能模块都在一个工程中开发;项目部署时需要对所有模块一起编......
  • #20211105李宜时《信息安全系统设计与实现》第三周学习总结
    20211105李宜时《信息安全系统设计与实现》第三周学习总结学习不同编程语言的必备要素和技能1.语法和基本结构了解编程语言的语法和基本结构是编程的第一步。这包括变量、数据类型、运算符、条件语句、循环结构等。以下是Python、C和Java中的示例代码片段:Python#定义变量并......
  • Python教程(14)——Python函数的入门学习
    函数是什么?在编程中,函数是一段可重用的代码块,用于完成特定任务或执行特定操作。它可以接输入参数并返回一个值或执行一系列操作。函数可以帮助程序员将代码模块化,提高代码的可读性和可维护性。函数通常包括以下组成部分:函数名:用于标识函数,并可以通过函数名调用执行该函数。参......
  • 《信息安全系统设计与实现》学习笔记3
    第十章sh编程sh脚本sh脚本是一个包含sh语句的文本文件,命令行解释程序sh要执行该语句。创建文件文本mysh,包含:#!/bin/bash#commentlineechohellosh脚本与C程序sh脚本和C程序有一些相似之处,但他们在根本上是不同的。sh是解释程序,逐行读取sh脚本并直接执行这些行,而C......
  • MySQL实战45讲基础篇笔记
    基础架构与查询连接器1、root用户更改普通用户的权限将在下次普通用户重连时生效,即不会影响到当前连接的用户。2、空闲状态的链接经过设置的等待时间后会断开连接,下次使用需要重连。3、长连接和短连接:建立连接的过程比较复杂-->少使用短连接4、长连接使用时间MySQL内存占用......
  • 【监督学习:线性回归和分类】3.分类
    逻辑回归分类问题假设预测的变量y是离散的值,需要使用逻辑回归(LogisticRegression,LR)的算法,实际上它是一种分类算法。二元分类二元分类问题是指y只有两个离散值的情况,例如:垃圾邮件分类:y=1表示是垃圾邮件,y=0表示不是垃圾邮件癌症检测:y=1表示患有癌症,y=0表示没有癌症假说表......
  • 2023 20213423梁锦辉《计算机基础与程序设计》第一周学习总结
    2023-2024-1 20213423  《计算机基础与程序设计》第1周学习总结作业信息:加入云班课,参考学习本周学习资源注册博客园账号,加入2022-2023-1-计算机基础与程序设计参考 基于VirtualBox虚拟机安装Ubuntu图文教程安装Linux系统快速浏览一遍教材计算机科学概论,课本每章......