首页 > 其他分享 >信安系统学习笔记三

信安系统学习笔记三

时间:2022-09-18 11:36:28浏览次数:78  
标签:脚本 可执行文件 变量 信安 解释程序 笔记 学习 sh 执行

第十章、sh编程

一. 知识点归纳

(一)sh脚本

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

shebang(#!)的一些具体用法:

  1. 如果脚本文件中没有#!这一行,那么执行时会默认采用当前Shell去解释这个脚本(即:$SHELL环境变量)。
  2. 如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给那个解释程序去执行。
  3. 如果#!指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission
    denied”。如果#!指定的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。
  4. 如果#!指定的解释程序不存在,那么会报错“bad interpreter: No such file or directory”。注意:#!之后的解释程序,需要写其绝对路径(如:#!/bin/bash),它是不会自动到$PATH中寻找解释器的。
  5. 当然,如果你使用类似于”bash test.sh”这样的命令来执行脚本,那么#!这一行将会被忽略掉,解释器当然是用命令行中显式指定的bash。
  6. 脚本文件必须拥有可执行权限。

(二)sh脚本与C程序

- sh:

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

- C程序:

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

(三)echo

  • n:不要自动换行
  • e:若出现某个字符。特殊处理
  • \a:发出警告声
  • \c:不换行
  • \n:换行且光标移动到行首
  • \t:插入tab
  • -help:显示版本信息

(四)sh变量

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

(五)sh中的通配符

 

 

二. 问题与解决思路

程序设计语言必备的要素与技能在shell中如何体现?

  1. 用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的
  2. 提供了数组,循环,条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序,而不必使用类似C程序语言等传统程序编写的语法

三.实践内容与截图

 

 

 

 

 

 

 

标签:脚本,可执行文件,变量,信安,解释程序,笔记,学习,sh,执行
From: https://www.cnblogs.com/zhilan/p/16704486.html

相关文章

  • 5.Maven学习
    尚硅谷-Maven教程笔记1.maven:(项目管理工具)构建管理工具,依赖管理工具第一章Maven概述第一节为什么要学习Maven?1.Maven作为依赖管理工具(1)jar包规模过大(2) jar包的来源......
  • 20201320第三周学习笔记
    sh编程sh脚本sh脚本是一个包含sh语句的文本文件,命令行解释程序sh要执行该语句。创建mysh:1#!/bin/bash2#commentline3echohello 使用chmod-xm......
  • buf 工具对于buf使用的学习
    buf就是基于buf开发的,有不少实践可以参考学习bufbuf项目结构如下图  使用说明buf.yaml主要定义包  包命名  代码生成基本模式  包含......
  • Markdown学习
    Markdown学习第一天(效果加格式)注:所有格式用英文字体hello,world!'****'hello,world!'**'hello,world!‘**’hello,world‘~~~~’引用'>'“接空格”选择坚持,弥......
  • C语言学习
    1.I/O:input&output是一切实现的基础stdio标准IOsysio系统调用IO(文件IO)如果一个系统环境下,2中io都可以使用,当然优先使用标准io2.标准库函数都在man手......
  • C++学习笔记-day16
    1、模板......
  • 深度学习:计算性能
    1、命令式和符号式混合编程命令式编程,它使用编程语句改变程序状态:defadd(a,b):returna+bdeffancy_func(a,b,c,d):e=add(a,b)f=add(c,d)......
  • 道长的算法笔记:动态规划经典模型
    (一)背包模型Waiting...(二)数字三角形模型Waiting...(三)线性规划模型Waiting...(四)区间规划模型Waiting...(五)状态压缩动规模型Waiting.........
  • ML第24周学习小结
    本周收获总结一下本周学习内容:1、《深度学习》第七章:优化算法7.1优化与深度学习~7.8Adam算法......
  • HTML 笔记
    HTML和HTML5HTML或HyperTextMarkupLanuage(超文本标记语言)是一种标记语言,使用特定的标签和元素来表示网页的结构。超文本指的是一种包含链接到其他文本的文本。......