Shell编程快速入门
Shell编程快速入门
脚本格式要求
- 脚本以
#!/bin/bash开头 - 脚本需要有可执行权限
脚本的常用执行方式
- 方式1:输入脚本的绝对路径或相对路径
- 方式2:sh+脚本
Shell的变量
Shell变量介绍
- Linux Shell中的变量分为系统变量和用户自定义变量
- 系统变量:
$HOME,$PWD,$SHELL,$USER等等 - 显示当前shell中所有变量:
set
- 系统变量:
Shell变量的定义
- 定义变量:
变量=值 - 撤销变量:
unset 变量 - 声明静态变量:
readonly 变量
Shell变量的定义规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头
- 等号两侧不能有空格
- 变量名称一般习惯为大写
Shell设置环境变量
基本语法
export 变量名=变量值:将shell变量输出为环境变量source 配置文件:让修改后的配置信息立即生效echo $变量名:查询环境变量的值
Shell注释规则
-
单行注释
#,例如# 这是一个单行注释 -
多行注释
:<<! 内容 !-
:<<! 这是一个多行注释 !
-
Shell位置参数变量
介绍
当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用位置参数变量。
比如:./myshell.sh 100 200这就是一个执行shell的命令行,可以从myshell脚本中获取到参数信息
基本语法
$n:n为数字,$0代表命令本身$1-$9代表第一到第九个参数- 十以上的参数需要用大括号包含,如
${10}
$*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体$@:这个变量也代表命令行中原有的参数,不过区分对待$#:这个变量代表命令行中所有参数的个数
Shell预定义变量
基本介绍
- 就是shell设计者实现已经定义好的变量,可以直接在shell脚本中使用
基本语法
$$:当前进程的进程号PID$!:后天运行的最后一个进程的进程号PID$?:最后一次执行的命令的返回状态。- 如果这个变量的值为0,证明上一个命令成功执行
- 如果这个变量的值为非0,则证明上一个命令执行不正确
运算符
基本语法
"$((运算式))"或"$[运算式]"或者expr m + n,其中m和n都是数字- 注意
expr运算符间要有空格,如果希望将expr的结果赋给某个变量,使用反引号`` expr m - nexpr \*,/,% 乘,除,取余
条件判断
基本语法
[ condition ]注意condition前后要有空格- 非空返回
true,可以使用$?验证
- 非空返回
判断语句
-
两个整数的比较
-
-lt:小于 -
-le:小于等于 -
-eq:等于 -
-gt:大于 -
-ge:大于等于 -
-ne:不等于
-
-
按照文件权限进行判断
-r:由读的权限-w:有写的权限-x:有执行的权限
-
按照文件类型进行判断
-f:文件存在并且是一个常规的文件-e:文件存在-d:文件存在并是一个目录
read读取控制台输入
基本语法
read(选项)(参数)- 选项
-p:指定读取值时的提示符-t:指定读取值时等待的时间(秒),如果没有在指定时间内输入,就不要等待了
- 参数
- 变量:指定读取值的变量名
相关文章:
Shell编程快速入门
Shell编程快速入门 脚本格式要求 脚本以#!/bin/bash开头脚本需要有可执行权限 脚本的常用执行方式 方式1:输入脚本的绝对路径或相对路径方式2:sh脚本 Shell的变量 Shell变量介绍 Linux Shell中的变量分为系统变量和用户自定义变量 系统变量&#…...
wpf 3d 坐标系和基本三角形复习
wpf 3d 坐标系的描述见此, WPF 3d坐标系和基本三角形_wpf 坐标系_bcbobo21cn的博客-CSDN博客 X轴正向向右,Y轴正向向上;Z轴,正向是从屏幕里边出来,负向是往屏幕里边去;坐标原点是在呈现区域的中心&#x…...
如何安全变更亚马逊收款账户?
有太多的卖家想知道如何安全变更亚马逊收款账户,因为更改了第三方收款账户可能会导致二次视频认证或者增强视频。真的是这样吗? 其实不推荐亚马逊店铺正常运营之后去变更信用卡,收款账户等重要资料的,因为玩黑科技的卖家也真的多…...
大数据面试题:Hadoop中的几个进程和作用
面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)启动Hadoop,都会有什么进程 参考答案: 1)NameNode:Master…...
题解:ABC276D - Divide by 2 or 3
题解:ABC276D - Divide by 2 or 3 题目 链接:Atcoder。 链接:洛谷。 难度 算法难度:入门。 思维难度:入门。 调码难度:入门。 综合评价:极简。 算法 数论。 思路 由大脑可知&#x…...
后台管理系统
1.1 项目概述 简易后台管理系统是一个基于Vue3ElemrntPlus的后台管理系统,提供了用户登录、记住密码、数据的增删改查、分页、错误信息提示等功能,旨在协助管理员对特定数据进行管理和操作。 没有后台对接,数据源为假数据。 全部代码已上传G…...
C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig与zag/左右双旋/3+4重构)
本文目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 06.代码注意插入算法删除算法完整代码:…...
静态库和动态库
库文件 库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。 库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。库文件有两种&a…...
用于Voronoi图构建的Fortune算法的C++实现
Voronoi图是一种在计算几何中广泛使用的数据结构,它可以用于解决最近邻搜索、路径规划等问题。在这篇文章中,我们将探讨一种用于构建Voronoi图的高效算法——Fortune算法,并提供其C实现。 一、Voronoi图简介 Voronoi图是由一组点在平面上生…...
笔记汇总 | 斯坦福 CS229 机器学习
文章目录 前言课程参考文章推荐阅读 前言 本文为斯坦福大学 CS229 机器学习课程学习笔记 本文主体部分转载自黄海广博士,文末已给出链接,大家有兴趣可以直接访问笔记首页,下载对应课程资料及作业代码 课程官网:CS229: Machine …...
git 版本管理工具 学习笔记
git 学习笔记 目录 一、git是什么 二、创建仓库 三、工作区域和文件状态 四、添加和提交文件 五、回退版本 (了解) 六、查看差异 七、删除文件 八、.gitignore文件(了解) 九、github ssh-key配置 十、本地仓库和远程仓库内…...
Bean基本注解开发和Bean依赖注入注解开发
目录 1.Bean基本注解开发 Component Scorelazy PostConstruct和PreDestroy RepositoryServiceController 2.Bean依赖注入注解开发 Value Autowired Qualifier Resource 扩展AutoWired 1.Bean基本注解开发 基本Bean注解,主要是使用注释的方式替代原有xml的…...
使用IIS服务器搭建一个网站
参考文章 使用IIS(Internet Information Services)服务器搭建一个网站相对来说是比较简单的。以下是基本的步骤: 安装IIS: 首先,确保你的操作系统已经安装了IIS。在大多数Windows版本中,IIS都是可选安装项…...
HCIP 三层交换机
一、实现VLAN间通信 在传统的交换机组网中,默认所有网络都处于同一个广播域,带来了许多问题,VLAN技术的提出,满足了二层组网隔离广播域需求,使得属于不同的VLAN间网络无法通信,但不同VLAN之间又存在着互相…...
利用python 进行数据分析(第三版)第二章小结
利用python 进行数据分析(第三版)第二章小结 由于是闲暇时间看的,且为读书笔记,所以只会写一些心得和容易混淆的知识,简单知识将不在重复 在变量或者函数后使用?可以查看详细信息。?还有最后一个用途,即…...
【ASP.NET MVC】使用动软(四)(12)
一、筛选器类和Cookie实现路由 需解决的问题: 网站登录往往需要用户名密码验证,为避免重复验证,一般采用Cookie 、Session等技术来保持用户的登录状态: Session是在服务端保存的一个数据结构,用来跟踪用户的状态&…...
【web逆向】全报文加密及其登录流程的分析案例
aHR0cHM6Ly9oZWFsdGguZWxkZXIuY2NiLmNvbS9zaWduX2luLw 涉及加密库jsencrypt 定位加密点 先看加密的请求和响应: 全局搜索加密字段jsondata,这种非特定参数的一般一搜一个准,搜到就是断点。起初下的断点没停住,转而从调用栈单步…...
MyBatis枚举映射类讨论
前言 本篇需要对于MyBatis有一定的认识,而且只是针对于TypeHandler接口来讨论,暂不讨论其他方面的问题 TypeHandler概叙 TypeHandler是MyBatis设计的一个用于参数的接口,你们会不会很好奇MyBatis是如何把整形,时间,字符…...
微信开发之朋友圈自动点赞的技术实现
简要描述: 朋友圈点赞 请求URL: http://域名地址/snsPraise 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wId…...
Linux命令200例:sed对文本进行修改、替换和删除等操作的强大工具(常用)
🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
TCP/IP 网络编程 | 服务端 客户端的封装
设计模式 文章目录 设计模式一、socket.h 接口(interface)二、socket.cpp 实现(implementation)三、server.cpp 使用封装(main 函数)四、client.cpp 使用封装(main 函数)五、退出方法…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...
接口 RESTful 中的超媒体:REST 架构的灵魂驱动
在 RESTful 架构中,** 超媒体(Hypermedia)** 是一个核心概念,它体现了 REST 的 “表述性状态转移(Representational State Transfer)” 的本质,也是区分 “真 RESTful API” 与 “伪 RESTful AP…...
