Linux进阶-Shell编程

news2025/1/12 8:53:59

目录

定义变量:

使用变量:

将命令的结果赋值给变量:

删除变量:unset

退出当前进程:exit

读取从键盘输入的数据 :read

对整数进行数字运算:(())

逻辑与或:

检测某个条件是否成立:

管道(可将两个或多个命令连接在一起,上一个命令的输出信息会作为下一个命令的输入信息):command1 | command2

if语句 

if else语句

if elif else语句

 case in语句

for in循环 

while循环

函数


Shell脚本(shell命令按一定语法组成的文件)作用:

软件启动;

性能监控;

日志分析;

...

shell命令本质:内置命令/外部命令(应用程序)。(可由type <command>判断)

例如:创建一个hello的c文件,意在终端输出hello world。然后编译这个c文件(gcc hello.c -o hello),然后把hell移动到/usr/bin/。

当向终端输入hello时,终端输出hello world。这个c文件就成了shell的外部命令。

常用的shell解释器:/etc/shells

shell脚本常用后缀名:.sh

Shell启动方式

当程序运行(./)

指定解释器运行(/bin/bash)

source和.

 

Shell脚本语法

定义变量:

variable=value

variable='value'(符号内不做逻辑判断)

variable="value"。 

使用变量:

$variable

${variable}

 

将命令的结果赋值给变量:

variable=`command`

variable=$(command)

删除变量:unset

特殊变量描述
$0当前脚本的文件名
$n(n>=1)传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
$#传递给脚本或函数的参数个数
$*传递给脚本或函数的所有参数
$@传递给脚本或函数的所有参数。当被双引号“”包含时,$@与$*稍有不同
$?上个命令的退出状态或获取函数返回值
$$当前Shell进程ID。对于Shell脚本,就是这些脚本所在的进程ID

退出当前进程:exit

读取从键盘输入的数据 :read

对整数进行数字运算:(())

 

逻辑与或:

command1&&command2

command1||command2

检测某个条件是否成立:

test expression

[ expression ]

选项描述
-eq判断数值是否相等
-ne判断数值是否不相等
-gt判断数值是否大于
-lt判断数值是否小于
-ge判断数值是否大于等于
-le判断数值是否小于等于
-z str判断字符串str是否为空
-n str判断字符串str是否为非空
=和==判断字符串str是否相等
-d filename判断文件是否存在,并且是否为目录文件
-f filename判断文件是否存在,并且是否为普通文件

管道(可将两个或多个命令连接在一起,上一个命令的输出信息会作为下一个命令的输入信息):command1 | command2

if语句 

if condition
then
    statement(s)
fi

if else语句

if condition
then
    statement1
else
    statement2
fi

if elif else语句

if condition1
then
    statement1
elif condition2
then
    statement2
...
else
    statement
fi

 case in语句

case expression in
    pattern1)
        statement1
        ;;
    pattern2)
        statement2
        ;;
    pattern3)
        statement3
        ;;
......
            *)
        statementn
        ;;
esac

for in循环 

for variable in value_list
do
    statements
done

value_list:

直接给出具体的值;

给出一个取值范围;

使用命令的执行结果;

使用Shell通配符;

使用特殊变量。

 

while循环

while condition
do
    statements
done

  

函数

function name(){
    statements
    [return value]
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt QSqlQueryModel详解

1.功能概述 QSqlQueryModel是QSqlTableModel的父类。QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能&#xff0c;但是QSqlQueryModel只能作为只读数据源使用&#xff0c;不可以编辑数据。 2.常用API void clear() //清除数据模型&#xff0c;释放所有获得的数据…

投资有风险,入市需谨慎

投资有风险&#xff0c;入市需谨慎投资有风险&#xff0c;入市需谨慎股票的分类股票的分时图股票K线图股票交易规则股票趋势股票买卖机制投资有风险&#xff0c;入市需谨慎 感谢平台和大家支持&#xff0c;今天不聊技术&#xff0c;了解了解其他方面&#xff0c;比如股市&…

编程思维是一种什么思维?

hello wordl&#xff01;    keep coding&#xff01;&#x1f3c3; 学编程不是将来要当程序猿&#xff0c;而是在学习编程思维。比尔盖茨、扎克伯格、乔布斯用经验告诉我们&#xff0c;拥有编程思维的人&#xff0c;就相当于成功了一半——不但逻辑清晰心思缜密&#xff0c;…

vue + el-checkbox 单选功能

需求: 用 el-checkboc 实现单选功能并且当选中某一项时则回填到input框里,当点击 enter 键或者是 按下搜索图标按键,来实现页面搜索内容的同步展示;如图: <el-checkbox-group placeholder"请选择"size"small"v-model"checkedCols"clearablefi…

Android BLE HIDS Data ,从问询DB 到写入Android 节点的flow之二

问题点4&#xff1a;Android BLE具体连接flow 并问询DB的API flow 之第一阶段问询&#xff1b; 当前确认原生BT当作为GATT Client 连接上GATT Server时&#xff0c;在连接上后会有自动启动问询的动作(以下Tracing 基于Android 9(P), 测试 8.1的代码和Android 8.0有差异&#x…

Web大学生网页作业成品——抗击疫情网站设计与实现(HTML+CSS)实训素材

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 击疫情致敬逆行者感人类题材 | 致敬逆行者网页设计作品 | 大学生抗疫感动专题网页设计作业模板 | 等网站的设计与制作 | HTML期末大学生网页设计作业 …

第3阶段-运维线上实战-3.2企业级nginx使用

企业级nginx使用 nginx实现平滑升级 [rootlnmp nginx-1.16.0]# cd /usr/local/nginx/sbin/ [rootlnmp sbin]# ls nginx nginx.old [rootlnmp sbin]# ./nginx -v nginx version: nginx/1.16.0 [rootlnmp sbin]# ./nginx.old -v nginx version: nginx/1.14.2 [rootlnmp sbin]#操…

【Spring】Spring的AspectJ的AOP

Spring学习笔记(10)Spring的AspectJ的AOP 在Spring中使用AspectJ实现AOP AspectJ 是一个面向切面的框架&#xff0c; 它扩展了 Java 语言。 AspectJ 定义了 AOP 语法所以它有一个专门的编译器用来生成遵守 Java 字节编码规范的 Class 文件。AspectJ 是一个基于 Java 语言的 A…

[附源码]java毕业设计双学位在线考试系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

01-mysql基础

MySQL基础 今日目标&#xff1a; 完成MySQL的安装及登陆基本操作能通过SQL对数据库进行CRUD能通过SQL对表进行CRUD能通过SQL对数据进行CRUD 1&#xff0c;数据库相关概念 以前我们做系统&#xff0c;数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会…

[附源码]SSM计算机毕业设计远程教育系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Springboot项目集成Swagger3.0

目录一&#xff0c;Swagger简介二&#xff0c;集成Swagger1&#xff0c;引依赖2&#xff0c;写配置3&#xff0c;配置说明3.1&#xff0c;暴露接口3.2&#xff0c;补充信息4&#xff0c;加注解注解说明三&#xff0c;测试一&#xff0c;Swagger简介 开发时经常会出现下面这种情…

【Redis从入门到进阶】第 1 讲:Redis的五大基本数据类型

本文已收录于专栏&#x1f345;《Redis从入门到进阶》&#x1f345;专栏前言 本专栏开启&#xff0c;目的在于帮助大家更好的掌握学习Redis&#xff0c;同时也是为了记录我自己学习Redis的过程&#xff0c;将会从基础的数据类型开始记录&#xff0c;直到一些更多的应用&#xf…

《十八》JS 中的错误处理

error 对象&#xff1a; error 对象是当错误发生时提供错误信息的 JS 内置对象。 当错误发生时&#xff0c;浏览器会生成 error 对象并抛出&#xff0c;并且中断后面代码的执行。 console.log(person.name) console.log(不会被执行到)也可以通过 Error() 构造函数自定义 err…

使用Resnet网络对人脸图像分类识别出男女性别(包含数据集制作+训练+测试)

文章目录前言一、数据预处理1.分类数据存放2.生成train.txt与val.txt二、更改配置文件1.自定义修改三、定义resnet网络四、train.py训练五、预测predict.py实现六、预测结果七、完整项目代码数据集(大于1500张)总结前言 本打算昨天写这篇博客的&#xff0c;推迟到今天晚上。实…

章节3 配置CentOS

3.1-什么是虚拟机 什么是虚拟机&#xff1f; Virtual Machine&#xff0c;虚拟软件/平台虚拟出来的操作系统。 虚拟机/物理机 虚拟化技术 虚拟化软件&#xff1a;VMware Workstation、VirtualBox、Virtual PC、Citrix Xen Desktop、Parallels Desktop&#xff08;MacOS&am…

刷题日记【第十五篇】-笔试必刷题【有假币+求正数数组的最小不可组成和+最难的问题+因子个数】

1.实例方法需要通过super来调用超类中的实例方法&#xff1b;实例方法需要通过类名称来调用超类的类方法&#xff1b;实例方法需要向下转型才能调用子类的实例方法&#xff1b;实例方法可以直接调用本类的实例方法。 2.HashSet子类依靠【hashCode();equals()】方法区分重复元素…

2.6 场效应管放大电路

一、场效应管放大电路的三种接法 场效应管的源极、栅极和漏极与晶体管的发射极、基极和集电极相对应&#xff0c;因此在组成放大电路时也有三种接法&#xff0c;即共源放大电路、共漏放大电路和共栅放大电路。以 NNN 沟道结型场效应管为例&#xff0c;三种接法的交流通路如图2…

Python 3.11 有什么新功能?

详细概述Python 3.11中最重要功能&#xff0c;包括如何安装 beta 版本以及何时可以获得官方稳定版本。 长按关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 扫码关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 Python在过…

【毕业设计】24-基于单片机的电子显示屏的设计与应用(原理图+源码+仿真工程+论文+答辩PPT)

【毕业设计】24-基于单片机的电子显示屏的设计与应用&#xff08;原理图源码仿真工程论文答辩PPT&#xff09; 文章目录资料下载链接任务书设计说明书摘要设计框架架构设计说明书及设计文件源码展示资料下载链接 资料下载链接 资料链接&#xff1a;https://www.cirmall.com/ci…