shell

devtools/2024/11/24 19:54:39/

第四章  shell中的变量

4.1 系统变量

 1.常用系统变量

$HOME ,$PWD,$SHELL ,$USER

4.2 自定义变量

1.变量=值(等号两边没有空格)

2.撤销变量:unset变量

3.声明静态变量:readonly 变量,注意:不能unset

4.变量命名规则

(1)变量名称可以由字母,数字和下划线组成,但是不能以数字开头,环境变量名建议大写。

  (2) 等号两侧不能有空格

 (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算

(4)变量的值如果有空格,需要使用双引号或者单引号括起来

(7) 可把变量提示为全局环境变量,可供其它shell程序使用,

export 变量名

4.3特俗变量:$n

1.基本语法

$n (功能描述,n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数需要用${10})

4.4 特殊变量:$#

输入参数的个数

4.5特殊变量:$*,$@

1.基本语法

$* (功能描述:这个变量代表命令行中所有参数,$*把所有参数看成一个整体)

$@ (功能描述:这个变量也代表命令行所有的参数,不过$@把每个参数区分对待)

4.6 特殊变量:$?

$? (功能描述,最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体哪个数,由命令自己来决定),则可以证明上一个命令执行不正确了)

第五章 运算符

1.基本语法

(1)“$((运算式))” 或“$[运算式]”

(2)expr +,-,\*,/,%  加,减,乘,除,取余

注意:expr运算符间要有空格

第六章 条件判断

1.基本语法

[ condition ] (注意condition 前后要有空格)

注意:条件非空即为true ,[ atguigu ] 返回 true ,[] 返回false

2.常用判断条件

(1)两个整数之间比较

= 字符串比较

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

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

-ge 大于等于 (greater equal)   -ne 不等于 (not qual)

(2) 按照文件权限进行判断

-r 有读权限  -w 有写权限

-x 有执行的权限(execute)

(3)按照文件类型判断

-f 文件存在并且是一个常规的文件(file)

-e 文件存在(existence)

-d 文件存在并且是一个目录(directory)

(4) 多条件判断

&&表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令

第七章 if 判断

7.2 case

7.3 for 

第八章 read

-p :指定读取值时的提示符;

-t: 指定读取值时的等待时间(秒)

参数

变量:指定读取值的变量名

第九章

第十章

经验技巧:

1.必须在函数调用地方之前,先声明函数,shell脚本是逐行逐行运行。不会像其它语言一样先编译

2.函数返回值,只能通过$?系统变量获得,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数值n(0-255)

第11章 cut


http://www.ppmy.cn/devtools/136628.html

相关文章

ROS机器视觉入门:从基础到人脸识别与目标检测

前言 从本文开始,我们将开始学习ROS机器视觉处理,刚开始先学习一部分外围的知识,为后续的人脸识别、目标跟踪和YOLOV5目标检测做准备工作。我采用的笔记本是联想拯救者游戏本,系统采用Ubuntu20.04,ROS采用noetic。 颜…

03 —— Webpack 自动生成 html 文件

HtmlWebpackPlugin | webpack 中文文档 | webpack中文文档 | webpack中文网 安装 npm install --save-dev html-webpack-plugin 下载html-webpack-plugin本地软件包 npm i html-webpack-plugin --save-dev 配置webpack.config.js让webpack拥有插件功能 const HtmlWebpack…

Kafka - 消费者程序仅消费一半分区消息的问题

1. 问题描述 修改安全服务状态有时逻辑正常有时候逻辑不正常,排查incident服务的日志发现消息可以正常发送到 kafka topic ,但是incident-cron 服务有时候有拉取消息的日志有时候没有日志。 kafka 生产者可以将消息正常发送到 kafka topic &#xff0c…

#Verilog HDL# Verilog中的generate用法集锦

生成块允许复制模块实例或有条件地实例化任何模块。它提供了基于Verilog参数构建设计的能力。当相同的操作或模块实例需要重复多次,或者当某些代码需要根据给定的Verilog参数有条件地包含时,这些语句特别方便。 生成块不能包含端口、参数、specparam声明或指定块。但是,允许…

D77【 python 接口自动化学习】- python基础之HTTP

day77 postman接口请求 学习日期:20241123 学习目标:http 定义及实战﹣﹣postman接口请求 学习笔记: get请求 post请求 总结 get请求用于查询数据post请求用于添加数据

Docker2:docker快速入门(部署MySQL)

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

C++四种类型转换操作符 static_cast、dynamic_cast、reinterpret_cast、const_cast介绍

前言 C风格的强制类型转换很简单,都可以使用Type b (Type)a形式转换。但这种方式存在一些缺点,比如信息丢失或精度损失,代码可读性的下降等。因此C提供了四种类型转换符来应对不同场合。分别是static_cast、dynamic_cast、reinterpret_cast…

linux通过手工删除文件卸载oracle 11g rac的具体步骤

在linux操作系统中,有些时候我们自己学习和测试会临时搭建的oracle rac。事情完成后,我们想回收资源,需要去卸载oracle rac。为了快速卸载oracle rac,今天我们介绍下如何通过手工删除文件的方式来完成工作(操作都需要在…