shell入门运算符操作、条件判断

news2024/11/30 6:47:24

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

目录

介绍

1.shell的由来

2.什么是shell

3.shell可以干什么

一、运算符

二、条件判断


介绍

1.shell的由来

    在 AT&T 的 Dennis Ritchie 和 Ken Thompson 设计 UNIX™ 的时候,他们想要为用户创建一种与他们的新系统交流的方法。

    那时的操作系统带有命令解释器。命令解释器接受用户的命令,然后解释它们,因而计算机可以使用这些命令。

    但是 Ritchie 和 Thompson 想要的不只是这些功能,他们想提供比当时的命令解释器具备更优异功能的工具。这导致了 Bourne shell(通称为 sh)的开发,由 S.R. Bourne 创建。自从 Bourne shell 的创建,其它 shell 也被一一开发,如 C shell(csh)和 Korn shell(ksh)。

    当自由软件基金会想寻求一种免费的 shell,开发者们开始致力于 Bourne shell 以及当时其它 shell 中某些很受欢迎的功能背后的语言。

2.什么是shell

shell是一个命令解释器,它在接受应用程序/用户命令时候调用操作系统内核进行解释,从而达到执行我们所输入的命令,获得结果。另外shell还是一个功能强大的编程语言,易编写,易调试,灵活性高。

shell在硬件与用户之间充当翻译官,这就是他的作用

3.shell可以干什么

shell是可以在我们生活或办公中实现自动化运维,自动化办公,编写脚本,等等

一、运算符

shell中运算符与正常的运算式是行不通的,shell不同于其他高级编程语言直接可以进行正常的加减乘除的运算,所以就用到了运算的语句。

语法1: echo   $((运算式)) 
语法2: echo   $[运算式]

命令字为“$(( ))”    “$[ ]”

运算式中运算符左右必须有空格,如:$((1 + 2))

其他(冷门命令字) :

                语法:expr    值       运算符      值      

二、条件判断

基本语法:          

语法1:test    condition
语法2:[condition]      注意:condition 前后要有空格
备注:条件非空即为true[atguigu] 返回true [] 返回false

常用判断条件

(1)两个整数之间比较

-eq等于(equal)                -ne不等于(not equal)

-lt小于(less  than)                -le小于等于(less equal)

-gt大于(greater than)                -ge大于等于(greater  equal)

列 [8  -lt  9]  //判断8是否小于9

注意:如果是字符串之间的比较,用等号“=”判断相等:用"!=" 判断不等

     true=1(假的)                                        false=0(真的)

按照文件权限进行判断                        按照文件类型进行判断

-r有读的权限(read)                        -e文件存在(existence)

-w有写的权限 (rite)                         -f文件存在并是一个常规文件(file)

-x有执行的权限(execute)                 -d文件存在并且是一个目录(directory)

[-r   abc.txt]                                        //是否有可读权限

[-e   /root/file]                                   //是否/root/下有file文件

&&:有号两个条件同时成立 | 前一条命令,执行成功,才执行后一条命令

||  :或号两个条件满足一个 | 上一条命令执行失败后,才执行下一条命令

列:[$a  -lt  20] && echo "$a<20"  ||   echo "$a > 20"

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

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

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

相关文章

分类算法系列⑤:决策树

目录 1、认识决策树 2、决策树的概念 3、决策树分类原理 基本原理 数学公式 4、信息熵的作用 5、决策树的划分依据之一&#xff1a;信息增益 5.1、定义与公式 5.2、⭐手动计算案例 5.3、log值逼近 6、决策树的三种算法实现 7、API 8、⭐两个代码案例 8.1、决策树…

springboot使用切面记录接口访问日志

前言 当我们开发和维护一个复杂的应用程序时&#xff0c;了解应用程序的运行情况变得至关重要。特别是在生产环境中&#xff0c;我们需要追踪应用程序的各个方面&#xff0c;以确保它正常运行并能够及时发现潜在的问题。其中之一关键的方面是记录应用程序的接口访问日志。 Sp…

Linux系统离线安装RabbitMQ

安装rabbitmq 1、下载安装包 首先进入官网进行安装包的下载&#xff0c;在下载时一定要注意erlong版本和rabbitmq-server版本匹配 rabbitmq版本对应关系&#xff1a;传送门 Erlong下载地址:传送门 rabbitmq-server下载地址:传送门 socat 不同版本 centos7:传送门 cent…

理解项目开发(寺庙小程序)

转载自&#xff1a;历经一年&#xff0c;开发一个寺庙小程序&#xff01; (qq.com) 破防了&#xff01;为方丈开发一款纪念小程序&#xff01; (qq.com) 下面内容转载自&#xff1a;程序员5K为青岛啤酒节开发个点餐系统&#xff01; (qq.com) 看一个人如何完成一个项目的开发…

SpringBoot集成Swagger的使用

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器。 Swagger能够在线自动生成 RESTFul接口的文档&#xff0c;同时具备测试接口的功能。 简单…

UDP的可靠性传输2

系列文章目录 第一章 UDP的可靠性传输-理论篇&#xff08;一&#xff09; 第二章 UDP的可靠性传输-理论篇&#xff08;二&#xff09; 文章目录 系列文章目录三、流量控制RTORTT流量控制1.如何控制流量2. 发送方何时在发送数据3.流程图 拥塞控制1.慢启动 总结1.拥塞控制和流量…

基于Streamlit的应用如何通过streamlit-authenticator组件实现用户验证与隔离

Streamlit框架中默认是没有提供用户验证组件的&#xff0c;大家在基于streamlit快速实现web应用服务过程中&#xff0c;不可避免的需要配置该应用的访问范围和权限&#xff0c;即用户群体&#xff0c;一般的做法有两种&#xff0c;一种是通过用户密码验证机制&#xff0c;要求只…

Matlab图像处理-灰度直方图

一幅含有一个与背景明显对比的物体的灰度图像&#xff0c;如下图所示。 有包含双峰的灰度直方图&#xff0c;如下图所示。 两个尖峰对应于物体内部和外部较多数目的点&#xff0c;两峰尖的谷对应于物体边缘附近相对较少数目的点。在这样的情况下&#xff0c;通常使用直方图来确…

点亮LED——第一个IAR工程

文章目录 说明创建工作区创建新工程向工程添加文件设置工程Options编译工程下载程序EWPtool 插件之前的"测试开发板"章节 测试开发板——第一个AutoSAR程序,使用了一个 demo 工程,不管是裸机程序还是AutoSAR程序,那都是别人已经创建好的工程。本节来介绍如何来创建…

gismo程序示例:边长为 8 16 32 的长方体 受均布载荷

文章目录 前言一、一、8*32面 受均布载荷 二、最小的面&#xff08;8*16&#xff09;受均布载荷三、最大的面受均布载荷 前言 只是为方便学习&#xff0c;不做其他用途&#xff0c; 一、 一、8*32面 受均布载荷 /// This is an example of using the linear elasticity solver…

9月7日扒面经

redis缓存用在哪里&#xff0c;用本地缓存行不行? 数据库查询缓存&#xff0c;减小数据源压力&#xff0c;提高响应速度 页面缓存&#xff1a;将页面的渲染结果缓存在Redis中&#xff0c;以减少页面生成的时间和服务器负载。 频繁计算结果缓存&#xff1a;将频繁计算的结果…

配电房能源监测系统

配电房能源监测系统是一种能够实时监测和管理配电房能源消耗的系统&#xff0c;有助于企业更好地管理能源使用&#xff0c;降低能源成本&#xff0c;提高能源利用效率。本文将详细介绍配电房能源监测系统的组成、功能和优点。 一、配电房能源监测系统的组成 配电房能源监测系统…

2023年8大在线渗透测试工具介绍与分析

随着企业参与数字化运动&#xff0c;网络安全已成为大多数董事会讨论的一个重要方面。事实上&#xff0c;最近的一份报告显示&#xff0c;2022 年网络犯罪造成的损失总额达到惊人的 103 亿美元。 这就是在线渗透测试工具在网络安全中受到关注的地方。 今天&#xff0c;我们希…

【LeetCode-中等题】40. 组合总和 II

文章目录 题目方法一&#xff1a;递归回溯去重 题目 本题需要注意的就是去重操作因为nums数组里面的元素可能存在重复&#xff1a; 不重复的版本&#xff1a;【LeetCode-中等题】39. 组合总和 不去重版 方法一&#xff1a;递归回溯去重 参考讲解视频—回溯算法中的去重&#…

从KOOM看Java内存泄漏检测

前面我们了解了LeakCanary和Matrix Resource Canary中内存泄漏的监控和解析&#xff0c;不难看出LeakCanary是只能在线下部署的&#xff0c;主要原因是因为Debug.dumpHprofData执行会冻结整个应用进程&#xff0c;造成应用进程几秒乃至十多秒不能响应的情况&#xff0c;而dump时…

异步编程 - 10 Web Servlet的异步非阻塞处理

文章目录 OverViewServlet概述Servlet 3.0提供的异步处理能力Servlet 3.1提供的非阻塞IO能力Spring Web MVC的异步处理能力基于DeferredResult的异步处理基于Callable实现异步处理 小结 OverView 我们这里主要讨论Servlet3.0规范前的同步处理模型和缺点&#xff0c;Servlet3.0…

Amazon Aurora MySQL 和 Amazon RDS for MySQL 集群故障转移和只读实例扩容时间测试

01 测试背景 Amazon Aurora MySQL 是与 MySQL 兼容的关系数据库&#xff0c;专为云而打造&#xff0c;性能和可用性与商用数据库相当&#xff0c;成本只有其 1/10。 Amazon RDS for MySQL 让您能够在云中更轻松设置、操作和扩展 MySQL 部署。借助 Amazon RDS&#xff0c;您可以…

小白备战大厂算法笔试(三)——栈、队列、双向队列

文章目录 栈栈常用操作栈的实现基于链表的实现基于数组的实现 两种实现对比栈典型应用 队列队列常用操作队列实现基于链表的实现基于数组的实现 队列典型应用 双向队列双向队列常用操作双向队列实现基于双向链表的实现基于数组的实现 双向队列应用 栈 栈是一种遵循先入后出的逻…

Java从入门到精通-流程控制(二)

习题讲解&#xff1a; 上次我们给大家留了一些流程控制的问题&#xff0c;这次给大家分析讲解一下&#xff1a; 条件语句练习&#xff1a; 1.编写Java程序&#xff0c;用于接受用户输入的数字&#xff0c;然后判断它是偶数还是奇数&#xff0c;并输出相应的消息。 import ja…

电表采集器是如何接线的?

随着社会的进步和科技的发展&#xff0c;智能化和自动化已经成为了各个行业的发展趋势。在电力系统领域&#xff0c;电表采集器的应用越来越广泛&#xff0c;它实现了电能数据的远程采集、传输和分析&#xff0c;为电力系统的稳定运行提供了重要的数据支持。那么&#xff0c;电…