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

shell脚本-笔记25

笔记25

Shell脚本概述

Shell脚本的概念

将要执行的命令按顺序保存到一个文本文件
给该文件可执行权限
可结合各种Shell控制语句以完成更复杂的操作

Shell脚本应用场景

重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行
……

编写Shell脚本

编写脚本代码

使用vim文本编辑器
每行一条Linux命令,按执行顺序依次编写:

[root@localhost ~]# vim first.sh
cd /boot/
pwd
ls -lh vml*

赋予可执行权限

执行脚本文件

方法一:脚本文件路径(绝对路径与相对路径):

[root@localhost ~]# ./first.sh

方法二:sh 脚本文件路径:

[root@localhost ~]# sh first.sh

方法三:source 脚本文件路径:

[root@localhost ~]# source first.sh

更完善的脚本构成

脚本声明
注释信息
可执行语句

重定向

交互式硬件设备

标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息

类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

重定向操作

类型操作符用途
重定向输入<从指定的文件读取数据,而不是从键盘输入
重定向输出>将输出结果保存到指定的文件(覆盖原有内容)
>>将输出结果追加到指定的文件尾部
标准错误输出2>将错误信息保存到指定的文件(覆盖原有内容)
2>>将错误信息追加到指定的文件中
混合输出&>将标准输出、标准错误的内容保存到同一个文件中

管道操作

管道操作符号”|”:将左侧的命令输出结果,作为右侧命令的处理对象

cmd1 | cmd2 [… | cmdn]

Shell变量的作用、类型

变量的作用

用来存放系统和用户需要使用的特定参数(值)
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化

变量的类型

自定义变量:由用户自己定义、修改和使用
特殊变量:环境变量,只读变量,位置变量,预定义变量

自定义变量

定义一个新的变量

变量名以字母或下划线开头,区分大小写,建议全大写

变量名=变量值

查看变量的值

在这里插入图片描述

赋值时使用引号

双引号:允许通过 符号引用其他变量值单引号:禁止引用其他变量值, 符号引用其他变量值 单引号:禁止引用其他变量值, 符号引用其他变量值单引号:禁止引用其他变量值,视为普通字符
反撇号:命令替换,提取命令执行后的输出结果

从键盘输入内容为变量赋值

read [-p “提示信息”] 变量名

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

特殊的Shell变量

环境变量

由系统提前创建,用来设置用户的工作环境
配置文件: /etc/profile、~/.bash_profile

常见的环境变量

PWD、PATH
USER 、SHELL、HOME

只读变量

用于变量值不允许被修改的情况

位置变量

表示为 $n,n为1~9之间的数字

预定义变量

profile、~/.bash_profile

常见的环境变量

PWD、PATH
USER 、SHELL、HOME

只读变量

用于变量值不允许被修改的情况

位置变量

表示为 $n,n为1~9之间的数字

预定义变量

在这里插入图片描述


http://www.kler.cn/a/405129.html

相关文章:

  • 图像增强夜视仪行业全面而深入的分析
  • 如何在Word文件中设置水印以及如何禁止修改水印
  • Electron开发构建工具electron-vite(alex8088)添加VueDevTools(VitePlugin)
  • 设计模式之 享元模式
  • [大数据]Trino
  • 【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)
  • leetcode105:从前序与中序遍历构建二叉树
  • Java API 学习指南:从入门到精通的全面指导
  • 2.13 转换矩阵
  • 【数据库知识】mysql进阶-Mysql数据库的主从复制
  • Spring Boot核心概念:日志管理
  • SAP FICO 资产会计AA后台配置 (上)
  • PHP顺序查找和二分查找(也叫做折半查找)算法
  • Block Successive Upper Bound Minimization Method(BSUM)算法
  • Android 使用 LiveData/OnCheckedChangeListener 来监听变量变化
  • C++ 并发专题 - 线程安全的单例模式
  • Apache Maven简介
  • 给机器装上“脑子”—— 一文带你玩转机器学习
  • 博导的角度看,EtherNet/IP转Profinet网关的技术实现和区别
  • 基于Java Springboot社区便民服务管理系统
  • 移动零
  • CircuitBreaker机制详解:Elasticsearch中的资源管理
  • 【GIT】TortoiseGit的变基(Rebase)操作
  • Easyexcel(1-注解使用)
  • 什么是MuLogin虚拟浏览器配置文件?它们有什么作用?
  • MongoDB 监控:确保数据库性能和可靠性