当前位置: 首页 > news >正文

2.脚本文件初识

—>1.Makefile—自动化构建和管理项目的文件见这篇<—

1.编程语言

  编程语言分为2类,一类是编译型语言,将源文件经过编译得到可执行文件,该执行文件可以在特定平台上运行,其他平台则不行,因此是不跨平台的编程语言,但是效率也较高,经过编译得到可执行文件,每次要运行源文件直接运行该可执行文件即可,不用重新编译,除非有修改过,例如C/C++就是编译型语言;
  另一类是解释型语言,这类语言利用解释器将所要运行的代码转换成机器码让计算机执行,不运行的代码部分则不转换,注意,这类语言都是一边运行一边转换,生成对应平台的机器码,因此可以跨平台,但是效率就不是很高,常见的有JavaScript,Python,Matlab,shell等。

  脚本我的理解就是先在文件中写好一堆命令,运行这个文件时解释器将命令经过转换变成计算机能执行的机器码,让计算机按脚本里的命令一步一步执行,即命令的集合。

2.脚本解释器

  脚本语言如Python,JS,Shell都是不需要编译的解释型语言,需要用到解释器进行转换,常见的解释器有dash,bash,csh,sh等,在Linux系统中可以在终端输入 cat /etc/shells看支持的解释器类型,一般会有多种可支持解释器,要查看当前系统用的是哪种解释器可以在终端输入echo $shell查看,默认是bash解释器。

3.脚本常用命令

3.1指定解释器

  #!后面加解释器路径,例如#! /bin/sh,也可以不写,就按默认解释器来,一般Linux默认解释器是bash。

3.2注释

  #就是注释符,C语言里是\。

3.3输入

  相当于C语言里的scanf函数,脚本的输入命令是read,运行该命令时用户从键盘进行输入,输入完成后按回车完成输入,CPU读取缓冲区数据。
  如果要将输入的数据放到一个变量里直接指定变量名即可,不需要提前定义变量,如:在这里插入图片描述

3.4输出

  相当于C语言里的printf函数,脚本的输出命令是echo,运行该命令时往标准输出里输出数据,即在显示器上显示。注意:如果是输出一个字符串且字符串里有空格此时需要加上双引号,否则输出会遇到空格停止。

3.5变量

  不像C语言需要指定数据类型,脚本变量直接赋值即可,默认变量类型是字符串,引用对应变量的值时在变量名前加$符号,如果变量值是含有空格需要加双引号,而且如果使用echo输出某个变量的值,且这个变量值很长时需要加{ }修饰变量名。

3.6通配符

  通配符是用来匹配筛选用的,就比如我们用ctrl+f打开pdf的查找功能会根据我们输入的关键字进行匹配筛选类似,常见的通配符如下:
在这里插入图片描述

3.7管道

  类似输水管道将自来水从水厂输送到居民家里,管道就是将一个命令的输出作为另一个命令的输入,有两种格式:

  • 1.cmd1 | cmd2 (命令1的输出作为命令2的输入)
    例如:
    在这里插入图片描述
  • 2.cmd1 | xargs cmd2(命令1的输出作为命令2的参数)
    例如:
    在这里插入图片描述
      例子中的grep是用于查找文件里符合条件的字符串,上面命令意思就是查找家目录下hello.c的文件,找到的文件作为输出或参数,这里grep输入就是参数一样的,查找文件里的world字符串。

3.8重定向

  重定向就是把默认输入或者输出的位置变成指定位置,比如 ls 命令默认标准输出到显示器,我想输出到一个文件里就可以变成 ls >ma.text。常见重定向命令如下:
在这里插入图片描述

3.9反引号

  反引号里的会被当成命令解释,比如 ls 命令是列出当前目录下文件,现在要输出"hells"这个字符串,命令即为echo “hells”,里面的ls 被当成了普通字符,假设要让解释器将ls当成命令的话就加个反引号。

在这里插入图片描述

3.10数值运算

  脚本的变量类型默认是字符串,要实现数值运算可以用双括号,如下面例子所示:
在这里插入图片描述

3.11控制语句

  类似C语言的循环分支语句等,脚本也有,只是语法规则不一样,这里以分支语句为例,其他的大家要用到时边用边学即可。
  针对两种情况的分支语句格式:

在这里插入图片描述
  针对多种情况的分支语句格式:

在这里插入图片描述

相关文章:

  • python 如何把元组拆成几个包并输出
  • 智诚科技苏州SOLIDWORKS授权代理商的卓越之选
  • 单片机-89C51部分:6、按键
  • 组件之间的信息传递的四种方法!!【vue3 前端】
  • 自然语言处理之机器翻译:Statistical Machine Translation(SMT)的评估方法解析与创新实践
  • 从零开始开发一个简易的五子棋游戏:使用 HTML、CSS 和 JavaScript 实现双人对战
  • 3、Linux操作系统下,linux的技术手册使用(man)
  • 杨洋出席青岛啤酒白啤品牌活动 共赴生活美学之旅
  • 高自由度与多功能指尖设计:Allegro灵巧手V5(4F Plus)的技术亮点
  • CSS元素动画篇:基于当前位置的变换动画(四)
  • 技术分享 | Oracle-RAC修改IP信息
  • 【博客系统】博客系统第一弹:博客系统项目配置、MyBatis-Plus 实现 Mapper 接口、处理项目公共模块:统一返回结果、统一异常处理
  • 如何将数据输入到神经网络中
  • 小刚说C语言刷题——1320时钟旋转
  • AIGC(生成式AI)试用 32 -- AI做软件程序测试 3
  • 疑难解析 | 解决金仓数据库中securecmdd服务连接报错“Permission denied“问题
  • 初步自定义layui的table(laravel 12)
  • C盘清理实用技巧整理
  • [创业之路-341]:华为人力资源管理 - 华为技术专家体系详解
  • final static 中是什么final static联合使用呢
  • 人民日报:应对外贸行业风险挑战,稳企业就是稳就业
  • 释新闻|SEVIS是什么?在美留学生遭身份中止意味什么?
  • 103岁抗战老兵、抗美援朝老兵、医学专家张道中逝世
  • 申花四连胜领跑中超,下轮榜首大战对蓉城将是硬仗考验
  • 魔都眼·上海车展⑥|周六客流超13.5万人次,创开展新高
  • 伤者升至80人,伊朗港口爆炸源头或为“危险品和化学品仓库”