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

【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;

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

相关文章:

【Linux】shell 脚本基础使用

在终端中输入命令可以完成一些常用的操作,但是我们都是一条一条输入命令,比较麻烦,为了解决这个问题,就会涉及到 shell 脚本,它可以将很多条命令放到一个文件里面,然后直接运行这个文件即可。 shell 脚本类…...

nfs部署--相关记录

以下是在 CentOS 8 中将 10.40.111.41 上的 /nfsdata 目录通过 NFS 共享到 10.40.111.43 和 10.40.111.45 的 /nfsdata 目录的详细步骤: 在 10.40.111.41 上操作: 安装并配置 NFS 服务器: a. 安装 NFS 服务器软件包: sudo dnf in…...

java国产化云HIS基层医院系统源码 SaaS模式

目录 ​ 云HIS开发环境 功能模块介绍: 1、门诊模块 2、住院模块 3、药房、药库模块 ​编辑 4、电子病历模块 5、统计报表模块 6、系统管理模块 系统优势 云his之电子病历子系统功能 云 his 系统是运用云计算、大数据、物联网等新兴信息技术,按…...

docker 部署 Epusdt - 独角数卡 dujiaoka 的 usdt 支付插件

部署 部署说明 部署之前必须注意的几点事项,该教程不一定适合所有用户: 本教程主要是使用 docker 部署,宝塔用户或宿主机直接安装的用户请直接参考官网教程.本教程是独立部署 epusdt,使用独立的mysql和redis,与dujiaoka项目分开. 在研究的过程中发现 epusdt 也需要用到 mys…...

数据结构排序之冒泡、快速、插入、选择、堆、归并等排序及时间,空间复杂度等(超详解,绝对能满足你的需求,并能学到很多有用知识)

在本文章开始之前给大家介绍个网站,可以通过下面动画网址来理解 ,(国外的网站帮助学习数据结构很多知识,可以翻译下来,在搜索框搜索相应的排序算法进行动画演示,非常好用。)​​​https://www.cs.usfca.edu/~galles/visualization/https://www.cs.usfca.edu/~galles/vis…...

如何在windows环境和linux环境运行jar包

功能:实现对字符串小写转大写 java代码如下: package a_od_test;import java.util.Locale; /* 实现小写转大写 打jar包 分别在windows环境和liunx环境运行*/ public class Main28_To_Upper {public static void main(String[] args) {if (args.length 1) {System.out.printl…...

2602B吉时利2602B数字源表

181/2461/8938产品概述: 2600B系列系统源表SMU仪器是业界领先的电流/电压源和测量解决方案,采用吉时利第三代SMU技术制造。2600B系列提供单通道和双通道型号,将精密电源、真电流源、6-1/2位数字多用表、任意波形发生器、脉冲发生器和电子负载…...

Linux——fork复制进程

1)shell: 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令&…...

李廉洋:4.10黄金原油晚间走势最新分析及策略。

鉴于美联储官员对1月和2月通胀数据反应不足,3月通胀数据过热可能导致其反应过度的风险更大。美联储试图避免根据一两个数据点来制定政策,但今年迄今为止经济活动的韧性意味着,在年中降息的理由取决于通胀是否恢复自去年下半年以来的稳步下降趋…...

【头歌-Python】字符串自学引导

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137517279 参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301 如果代码存在问题,麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 字符串自学引导 …...

44-技术演进(下):软件架构和应用生命周期技术演进之路

应用、系统资源、应用生命周期管理这 3 个维度,构成了我们对云的所有诉求。 我会介绍下应用维度和应用生命周期管理维度的技术演进。 我们就先来看下软件架构的演进之路。 软件架构的演进 软件架构技术演进如下图所示: 单体架构 在单体架构中&#xff…...

【C++】C++中的list

一、介绍 官方给的 list的文档介绍 简单来说就是: list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中…...

uniapp:Hbuilder没有检测到设备请插入设备或启动模拟器的问题解决

问题 使用模拟器调试运行项目时,出现以下提示,“没有检测到设备,请插入设备或启动模拟器后点击刷新再试”。排查了一天最终找到原因。 解决 已确认模拟器是已经正常启动,并且Hbuilder设置中的adb路径和端口都配置没有问题&#…...

基于RBF的时间序列预测模型matlab代码

整理了基于RBF的时间序列预测模型matlab代码, 包含数据集。采用了四个评价指标R2、MAE、MBE、MAPE对模型的进行评价。RBF模型在数据集上表现非常好。 训练集数据的R2为:0.99463 测试集数据的R2为:0.96973 训练集数据的MAE为:0.…...

vue vue3 手写 动态加载组件

效果展示 一、需求背景: # vue3 项目涉及很多图表加载、表格加载 #考虑手写一个动态加载组件 二、实现思路 通过一个加载状态变量,通过v-if判断,加载状态的变量等于哪一个,动态加载组件内部就显示的哪一块组件。 三、实现效果…...

HTML:表单

目录 案例&#xff1a; 一、form标签 二、input标签 三、textarea标签 四、select标签 五、fieldset 标签 案例&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>报名表</title> </head> &l…...

即插即用篇 | YOLOv5/v7引入Haar小波下采样 | 一种简单而有效的语义分割下采样模块

本改进已集成到 YOLOv5-Magic 框架。 下采样操作如最大池化或步幅卷积在卷积神经网络(CNNs)中被广泛应用,用于聚合局部特征、扩大感受野并减少计算负担。然而,对于语义分割任务,对局部邻域的特征进行池化可能导致重要的空间信息丢失,这有助于逐像素预测。为了解决这个问题…...

Plonky2.5:在Plonky2中验证Plonky3 proof

1. 引言 Plonky2.5为QED Protocol团队主导的项目&#xff0c;定位为&#xff1a; 在Plonky2 SNARK中验证Plonky3 STARK proof。 从而实现Plonky系列的递归证明。 开源代码实现见&#xff1a; https://github.com/QEDProtocol/plonky2.5https://github.com/Plonky3/Plonky3&a…...

卷积通用模型的剪枝、蒸馏---剪枝篇(此处以deeplabv3+为例,可根据模型自行定制剪枝层)

之后的两篇文章是对前段时间工作的一个总结。 一、环境配置 1.1、文章以b导的代码为模板,环境配置比较简单(第二篇蒸馏篇结束后会放置剪枝蒸馏配置好的百度网盘链接),其他算法自行配置,在剪枝之前,需要保证算法能够在本地跑通。 B导链接: https://github.com/bubbliiiin…...

使用Ollama在本地运行AI大模型gemma

1.下载&#xff1a; https://github.com/ollama/ollama/releases 2.配置环境变量 我的电脑-右键-属性-系统-高级系统设置-环境变量-【系统环境变量】新建 变量名&#xff1a;OLLAMA_MODELS &#xff08;固定变量名&#xff09; 变量值&#xff1a;E:\Ollama\Lib &#xff0…...

PP实战指南:ECN工程变更在物料计划中的关键应用与系统操作解析

1. ECN工程变更的核心价值与业务场景 第一次接触ECN&#xff08;Engineering Change Notice&#xff09;是在2015年负责汽车零部件项目时&#xff0c;当时产线因为一个螺丝规格变更导致全线停产8小时。这个惨痛教训让我深刻理解到&#xff0c;工程变更绝不是简单的技术文档更新…...

从零开始:如何用开源方案打造你的第一台六足机器人

从零开始&#xff1a;如何用开源方案打造你的第一台六足机器人 【免费下载链接】hexapod 项目地址: https://gitcode.com/gh_mirrors/hexapod5/hexapod 想要亲手制作一台能够自如行走的六足机器人吗&#xff1f;hexapod开源项目为你提供了一套完整的免费解决方案&#…...

Path of Building:流放之路玩家必备的终极Build规划神器

Path of Building&#xff1a;流放之路玩家必备的终极Build规划神器 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 如果你正在玩《流放之路》并为复杂的Build规划感到头…...

Pixel Fashion Atelier保姆级教程:如何将生成结果无缝导入Aseprite进行二次编辑

Pixel Fashion Atelier保姆级教程&#xff1a;如何将生成结果无缝导入Aseprite进行二次编辑 1. 教程概述 Pixel Fashion Atelier是一款基于Stable Diffusion与Anything-v5的像素风格图像生成工具&#xff0c;特别适合创作复古RPG风格的时尚设计。本教程将手把手教你如何将生成…...

LangChainJS设计模式:可复用AI组件的架构思想

LangChainJS设计模式&#xff1a;可复用AI组件的架构思想 【免费下载链接】langchainjs 项目地址: https://gitcode.com/GitHub_Trending/la/langchainjs LangChainJS是一个用于构建LLM驱动应用程序的JavaScript/TypeScript框架&#xff0c;它通过可复用AI组件和设计模…...

3步轻松上手BepInEx:Unity插件框架新手必备指南

3步轻松上手BepInEx&#xff1a;Unity插件框架新手必备指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx是一款专为Unity游戏设计的插件框架&#xff0c;能帮助开发者轻…...

2024年App上架全攻略:从软著申请到应用市场发布

1. 2024年App上架必备条件全解析 想在2024年把App成功上架到各大应用市场&#xff0c;开发者需要跨过几道硬性门槛。最近帮几个创业团队走完上架流程&#xff0c;发现很多新手容易在这些基础环节卡壳。先说最重要的三件套&#xff1a;软件著作权证书、App备案号、应用市场要求的…...

FSearch:如何在Linux上实现秒级文件搜索?

FSearch&#xff1a;如何在Linux上实现秒级文件搜索&#xff1f; 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 还在为Linux系统中查找文件而烦恼吗&#xff1f;每次…...

如何让扫描PDF变得可搜索?OCRmyPDF-Desktop完整解决方案

如何让扫描PDF变得可搜索&#xff1f;OCRmyPDF-Desktop完整解决方案 【免费下载链接】pdfocr-desktop PDF OCR Application, adds an OCR text layer to scanned PDF files, allowing them to be copied and searched. 项目地址: https://gitcode.com/gh_mirrors/oc/pdfocr-d…...

如何通过BewlyBewly实现B站界面的个性化焕新体验?

如何通过BewlyBewly实现B站界面的个性化焕新体验&#xff1f; 【免费下载链接】BewlyBewly Improve your Bilibili homepage by redesigning it, adding more features, and personalizing it to match your preferences. 项目地址: https://gitcode.com/gh_mirrors/be/Bewly…...