【Linux】shell 脚本基础使用

在终端中输入命令可以完成一些常用的操作,但是我们都是一条一条输入命令,比较麻烦,为了解决这个问题,就会涉及到 shell 脚本,它可以将很多条命令放到一个文件里面,然后直接运行这个文件即可。
shell 脚本类似 Windows 的批处理文件 shell 脚本就是将连续执行的命令写成一个文件。
shell 脚本提供数组、循环条件判断的等功能。

创建一个 shell 脚本

shell 脚本文件名以 .sh 结尾,而且文件内容第一行必须为#!/bin/bash,创建方法如下;

vi my.sh

在这里插入图片描述

#!/bin/bash                //必须以此开头
echo "hello world"         //在终端显示

在这里插入图片描述
如何运行,在终端输入 ./my.sh 即可,需要添加可执行权限;
在这里插入图片描述

交互式 shell 脚本

shell 脚本和用户之间进行交互

输出 echo
输入 read

例一
在这里插入图片描述
在这里插入图片描述
例二
在这里插入图片描述
在这里插入图片描述

shell 脚本数值计算

仅支持整形,数值计算使用 $((表达式))

在这里插入图片描述
在这里插入图片描述
错误示例 (用等号赋值时,等号的前后均不能有空格)
在这里插入图片描述
在这里插入图片描述
改正(把等号前后的两个空格去掉)
在这里插入图片描述
在这里插入图片描述

test 命令

test 命令用于查看文件是否存在,查看权限,可以进行文件字符数值三方面的测试。

&& 和 || 命令
cmd1 && cmd2 :当 cmd1 执行完毕且正确,那么执行 cmd2,当 cmd1 执行完毕且错误,那么不执行 cmd2

cmd1 || cmd2 :当 cmd1 执行完毕且正确,那么不执行 cmd2,当 cmd1 执行完毕且错误,那么执行 cmd2

文件测试

-e 文件名	如果文件存在则为真
-r 文件名	如果文件存在且可读则为真
-w 文件名	如果文件存在且可写则为真
-x 文件名	如果文件存在且可执行则为真
-s 文件名	如果文件存在且至少有一个字符则为真
-d 文件名	如果文件存在且为目录则为真
-f 文件名	如果文件存在且为普通文件则为真
-c 文件名	如果文件存在且为字符型特殊文件则为真
-b 文件名	如果文件存在且为块特殊文件则为真

在这里插入图片描述
在这里插入图片描述

字符测试

=	等于则为真
!=	不相等则为真
-z 字符串	字符串的长度为零则为真
-n 字符串	字符串的长度不为零则为真

在这里插入图片描述
在这里插入图片描述

数值测试

-eq	等于则为真
-ne	不等于则为真
-gt	大于则为真
-ge	大于等于则为真
-lt	小于则为真
-le	小于等于则为真

在这里插入图片描述
在这里插入图片描述

中括号 [ ] 判断符

[ ] 里面只能输入 == 或者 != ,而且 [ ] 的前面与后面要与输入的内容空开

在这里插入图片描述
在这里插入图片描述

shell 脚本默认变量

$0 ~ $n :表示 shell 脚本的参数,$0 表示 shell 脚本命令本身;
$# :# 表示最后一个参数的标号;
$@ :表示 $1、$2、$3 … $n;

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/305063.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter Notbook如何安装配置并结合内网穿透实现无公网IP远程连接使用

文章目录 推荐1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&am…

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测 目录 分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述…

炒股自动化:交易接口API才是重点,券商官方散户可用的接口

上一篇我们用get_full_tick取到了数据,也讲了变量和字典的基本概念,这次我们向交易所发送订单试试。前面文章的链接放在文末了,需要的可以看一下 这些内容是给新手看的,找接口的大佬们直接拉到文末即可 取市场数据的方法很多&am…

【MATLAB源码-第12期】基于matlab的4FSK(4CPFSK)的误码率BER理论值与实际值仿真。

1、算法描述 4FSK在频移键控(FSK)编码的基础上有所扩展。FSK是一种调制技术,它通过在不同频率上切换来表示不同的数字或符号。而4FSK则是FSK的一种变种,表示使用了4个不同的频率来传输信息。 在4FSK中,每个数字或符号…

ONERugged车载平板电脑厂家丨工业车载电脑优势体现丨3年质保

作为现代社会中必不可少的出行工具,汽车不仅仅是代步工具,更是我们生活中的重要一部分。而在如此多功能的汽车内,一款高可靠性、适应不同行业应用的车载平板电脑成为了当下的热门选择。ONERugged车载平板电脑以其卓越的品质和强大的功能而备受…

post请求搜索功能爬虫

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency>…

git配置多SSH

目的&#xff1a; 一台电脑可以让github、gitee等账号同时存在&#xff0c;让不同账号配置不同的密钥 第一步&#xff1a;创建不同平台的SSH公钥 执行命令&#xff1a; ssh-keygen -t rsa -C "对应仓库邮箱地址" -f ~/.ssh/id_rsa.github 如果执行上面的命令&…

头歌机器学习实验 第7次实验 局部加权线性回归

任务描述 本关任务&#xff1a;编写一个利用局部加权计算回归系数的小程序。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.局部加权算法的思想&#xff1b;2.局部加权的核心算法。 局部加权算法的思想 在局部加权算法中 &#xff0c;我们给待预测点附近…

探索设计模式的魅力:MVVM模式在AI大模型领域的创新应用-打破传统,迎接智能未来

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MVVM模式在AI大模型领域的创新应用-打破传统迎接智能未来 &#x1f680; “在人工智能的领域里&a…

08 - 镜像管理之:镜像仓库harbor介绍

本文参考&#xff1a;原文1 1 Harbor仓库介绍 Docker容器应用的开发和运行离不开可靠的镜像管理&#xff0c;虽然Docker官方也提供了公共的镜像仓库&#xff0c;但是从安全和效率等方面考虑&#xff0c;部署我们私有环境内的Registry 也是非常必要的。 之前介绍了Docker私有仓…

CSS设置文本

目录 概述&#xff1a; text-aling: text-decoration: text-transform: text-indent: line-height: letter-spacing: word-spacing: text-shadow: vertical-align: white-space: direction: 概述&#xff1a; 在CSS中我们可以设置文本的属性&#xff0c;就像Word文…

解压文本(dfs+判环)

思路&#xff1a; 不难发现文件可以解压&#xff0c;当且仅当 1 号点出发能到达的节点集合&#xff0c;是一个有向无环图&#xff08;DAG&#xff09;。 无法解压的情况&#xff0c;就是图里存在环。于是我们可以 dfs 解压到这个文本时&#xff0c;给其标记 vis[i] true&…

YOLOv8 推理脚本--置信度保留多位浮点数 特征图可视化

效果 特征图可视化: 4位浮点数: 原始2位浮点数4位浮点数推理 --detect.py 说明 在进行改动前,请大家先阅读下 基础入门篇 | YOLOv8 项目【训练】【验证】【推理】最简单教程 | YOLOv8必看 | 最新更新,直接打印 FPS,mAP50,75,95 ,确保会用我给的推理脚本。 YOLO( ):…

关于01背包和完全背包问题的细节思考

01背包问题 #include<iostream> #include<stdlib.h> #include<vector> #include<cmath> int main() {int M0; //材料数int N0; //背包容量std::cin>>M>>N;std::vector<int>space(M,0);for(int i0;i<M;i) std::cin>>…

SAP FI F-32/F-44字段增强 案例 新增销售订单上面的客户参考VBKD-BSTKD

业务想在F-32 的清账界面 加上VBKD-BSTKD 参考 https://www.cnblogs.com/keyuming/p/15553615.html 但是不完全成功&#xff0c;走了不少弯路 1、新增字段 在RFOPS 和 RFOPS_S上新增字段建议还是老老实实用 Z(字段) 原想着扩展字段也用BSTKD&#xff0c;出来却是比较奇…

子域名是什么?有什么作用?

在互联网世界中&#xff0c;域名是我们访问网站的关键。每一个公司的网站都需要拥有自己的域名&#xff0c;其中有些大型公司的网站还不止一个域名&#xff0c;除了主域名外还拥有子域名。有些人感到非常困惑&#xff0c;不知道子域名是什么。其实子域名也就是平时所说的二级域…

C++模板初阶(个人笔记)

模板初阶 1.泛型编程2.函数模板2.1函数模板的实例化2.2模板参数的匹配规则 3.类模板3.1类模板的实例化 1.泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 //函数重载 //交换函数的逻辑是一致的&#xff0c…

Python处理PDF:在PDF文档中插入页眉和页脚

在处理篇幅较长、结构复杂的PDF文档时&#xff0c;页眉和页脚的设计与插入就显得尤为重要。它们不仅扮演着美化文档、提升专业度的角色&#xff0c;更承担了导航指引、信息标注的重要功能。 页眉通常用于展示文档的标题或章节名称&#xff0c;有助于读者在翻阅过程中迅速定位所…

校园圈子小程序,大学校园圈子,三段交付,源码交付,支持二开

介绍 在当今的数字化时代&#xff0c;校园社交媒体和在线论坛成为了学生交流思想、讨论问题以及分享信息的常用平台。特别是微信小程序&#xff0c;因其便捷性、用户基数庞大等特点&#xff0c;已逐渐成为构建校园社区不可或缺的一部分。以下是基于现有资料的校园小程序帖子发…

N 皇后 - 蓝桥杯?-Lua 中文代码解题第6题

n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回 n 皇后问题 不同的解决方案的数量。 示例 1&#xff1a; 输入&#xff1a;n 4 输出&#xff1a;2 解释&#xff1a;如上图所示&…