shell 中基本运算与数组

Shell-数组与数学运算 参考书籍 Linux shell 脚本攻略 数组和关联数组 数组分类 普通数组:只能使用整数作为数组索引。 关联数组:可以使用字符串作为数组索引。 定义数组 单行中使用一列值来定义:array_var=(1 2 3 4 5 6) #存储在以0为起始索引的连续位置上 定义为一组 索引——值对 array_var[0]="test1" array_var[1]="test... 阅读详情

1. shell中的基本运算

Shell 支持多种运算符,包括:

1.1 算术运算符

#!/bin/bash
a=12
# 加法
b=$(($a+4))
echo "两数之和为: $b"
# 两数之和为: 16

# -,*,/,%(取余)类似

使用expr,bc,awk等

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

注意:使用expr 时,表达式和运算符之间要有空格

# 反引号`` 中为可执行的shell命令,其结果可赋值给变量
b=`expr $a + 4`
b=`expr 10 \* 2` 
# 乘号(*)前边必须加反斜杠(\)才能实现乘法运算;

# expr不支持浮点除法,可以用bc 或 awk实现
num3=`echo "scale=2; $num1/$num2" | bc`
# sclae控制小数点后保留几位
echo "$num1 $num2" | awk '{printf ("%.2f\n",$1/$2)}'
# 百分数
num3=$(echo "$num1 $num2" | awk '{printf ("%.2f%\n",($1/$2)*100)}')

判断相等

a=10
b=20
if [ $a == $b ];then
    echo "a 等于 b"
fi
 
# 不相等 
[ $a != $b ] 

1.2 关系运算符

      只支持数字,不支持字符串,除非字符串的值是数字。

-eq 	检测两个数是否相等,相等返回 true,不相等返回 false。
-ne 	是否不相等
-gt 	>
-lt 	< 	
-ge 	>=
-le 	<=

1.3 布尔运算符

a=10
b=20
! 	非运算,表达式为 true 则返回 false。  [ ! false ] 返回 true。
-o 	或运算(or)                         [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 	与运算(and) 	                  [ $a -lt 20 -a $b -gt 100 ] 返回 false。

1.4 逻辑运算符

a=10
b=20
&& 	逻辑的 AND 	[[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 	逻辑的 OR 	[[ $a -lt 100 || $b -gt 100 ]] 返回 true

1.5 字符串运算符

   假定变量 a 为 "abc",变量 b 为 "efg":

= 	检测两个字符串是否相等,相等返回 true。 	[ "$a" = "$b" ] 返回 false。
!= 	是否不相等                        	[ "$a" != "$b" ] 返回 true。
-z 	检测字符串长度是否为0,为0返回 true。 	[ -z "$a" ] 返回 false。
-n 	是否不为0                        	[ -n "$a" ] 返回 true。
$ 	检测字符串是否为空,不为空返回 true。 	[ "$a" ] 返回 true。
变量最好用“”括起来,防止变量内部有空格,导致错误

1.6 文件测试运算符

file 表示文件 /var/zz/test.sh

-d file 	检测文件是否是目录,如果是,则返回 true。 	
-f file 	检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回true。 	
-r file 	检测文件是否可读 	
-w file 	是否可写
-x file 	是否可执行
-s file 	是否为空(文件大小是否大于0),不为空返回 true。 	
-e file 	检测文件(包括目录)是否存在,如果是,则返回 true。 	
                [ -e $file ] 返回 true。
example: 检测aa.txt是否存在,存在则输出‘exist’
test -e aa.txt && echo 'exist' || echo 'not exist!' 

2. 数组

定义字符串:         A="a b c def"  

定义字符数组:     A=(a b c def)  

命令含义输出
${A[@]}返回数组全部元素a b c def
${A[*]}返回数组全部元素a b c def
${A[0]}返回数组第一个元素a
${A[-2]}返回数组倒数第二个元素c
${#A[@]}返回数组元素总数4
${#A[*]}返回数组元素总数4
${#A[3]}返回数组第四个元素的长度3
A[3]=xyz给数组元素第四个元素赋值xyz

从Power到HO:一文搞懂主流脑图谱在DPABI里怎么选,让你的rs-fMRI分析更精准 本文深入解析了rs-fMRI分析中主流脑图谱(如Power、HO、AAL等)在DPABI中的科学选择策略,帮助研究者根据不同的神经科学研究目标优化分析流程。从解剖学图谱到功能连接图谱的特性对比,到DPABI实操中的多图谱分析工作流,提供了全面的方法论指导,助力提升静息态功能磁共振成像(rs-fMRI)研究的精准度和可重复性。 阅读详情

相关推荐

FID指标实战:如何用Python快速计算生成图像的质量分数(附完整代码)

本文详细介绍了如何使用Python计算Fréchet Inception Distance(FID)指标,以评估生成图像的质量。通过完整的代码示例和优化技巧,帮助开发者快速实现FID计算,并解读分数背后的实际意义,适用于GAN和扩散模型的性能评估。

weixin_28718487的博客 377

shell判断false_shell中if和相关判断符

1. 关于某个档名的『类型』侦测(存在与否),如 test -e filename-e 该『档名』是否存在?(常用)-f 该『档名』是否为档案(file)?(常用)-d 该『文件名』是否为目录(directory)?(常用)-b 该『文件名』是否为一个 block device 装置?-c 该『文件名』是否为一个 character device 装置?-S 该『档名』是否为一个 Socket 档...

weixin_39687192的博客 1205

云架构师进阶【SAP迁移方案设计】手把手教您玩转SAP上云

一,项目背景介绍 今天又接到了北京某制造企业SAP迁移的场景,先简单说明一下,好好的SAP在运行着为什么要做迁移这类大动作呢?众所周知SAP的ERP是企业的绝对核心系统,尤其对于制造业更是核心的系统,这样一套核心系统还是生产环境在迁移的过程中必然要面临比较大的挑战,如果有任何问题的话,都会对企业的绩效产生很大的影响。 经过跟客户沟通才得知,客户的SAP原来的系统是托管在运营商机房里,近期感染了勒索病毒,导致业务宕机,SAP应用服务器无法启动,仅有的数据库服务器可以运行。基于上述情况公司领导当机立断决定迅

bdsh818的博客 4220

Shell 学习(8)Bash 的条件判断

Shell 学习(8)Bash 的条件判断

qq_38074398的博客 3119

Python 列表(list)所有方法超全汇总

以上就是 Pythonlist 列表全部 11 个内置方法的完整汇总,全覆盖、无遗漏。掌握所有列表方法,基本可以应对 99% 的列表操作场景,无论是日常开发、数据分析还是算法刷题都能高效编码。

jdksjw的博客 235

Kriging代理模型理论相关推导

代理模型,Kriging,加点准则

森屹的博客 1万+

.sh文件是什么语言_数据开发效率提升!Shell脚本语言技巧

-点击上方“中国统计网”订阅我吧!-文末领取【SQL数据分析常用语句】为什么要学习Shell呢?需要看懂运维人员编写的Shell程序。偶尔会编写一些简单Shell程序来管理集群、提高开发效率。01条件判断1.基本语法[ condition ](注意condition前后要有空格)注意:条件非空即为true,[ fsdm ]返回true,[]返回false。2.常用判断条件(1)两...

weixin_39922749的博客 1853

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 716

Linux Shell

Shell是一个命令行解释器,他接受应用程序/用户命令,然后调用操作系统内核。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell还是一个功能强大的编程语言,易编写、易调试、灵活性强。

weixin_57448301的博客 355

EGO_Planner代码学习(三):px4ctrl代码流程

上节阅读了EGO_Planner的轨迹服务器部分的代码,其实质是将规划器生成的轨迹进行离散化,间隔10ms计算当前时刻在轨迹上的位置,并发送到话题上。这两天抽空看了下控制器部分的代码,在l这个软件包里,它的功能是进行px4的模式识别和上层控制,通过线性控制器把发布过来的位置命令解算成飞控的控制量,通过mavros发送给px4。下面就详细看一下它的启动过程。

qq_41069236的博客 6805

task5:在本地搭建大模型(ollama 和 LM studio 对比),接入 openclaw

关于大模型,大家千万不要想着在本地部署,根本不可行,没有那个财力。另外大模型迭代快,不可能每周都在下载大模型。再次,还是国外的模型好用,国内的模型真的在 deepresearch 上就有很大问题,你们懂的。所以本篇文章,还是聚焦在探索层面+实操,并不会实战。

这里是 AI 食用指南,持续分享有用的AI 实操和应用! 1971

shell判断false_shell中的true和false值

测试if [0]测试0是否为空字符串(它不是),如果它不为空则返回true.测试if [1]是否类似地测试1是否为空字符串,如果它不为空则返回true.同样,另外两个测试检查字符串true和false是否为空…如果要测试命令,请执行以下命令:if false; then echo False is true; else echo False is false; fiif true ; then e...

weixin_39982933的博客 4933

【DRAM存储器五十一】LPDDR5介绍--DFE与Pre-Emphasis

简述LPDDR5的DFE和预加重应用设置

highman110的博客 707

「Linux系列」有关Shell数组/运算符的故事

数组、运算符

日常笔记/总结/系列知识梳理 1287

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

shell脚本 数组运算

写一个shell脚本,包含两个数字数组array1和array2,分别初始化为{1,2,3,4,5}和{1,4,9,16,25}。脚本生成并显示一个数组,其中的元素是这两个数组中对应元素的和,数组中第一个元素是1+1=2,第二个元素是2+4=6,依此类推。 #!/bin/bash declare -a array3=() declare -a array1=(1 2 3 4 5) declare ...

Cici$的博客 1565

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

shell学习数组、基本运算符

数组语法 数组名=(值1 值2 值3…) 初始化数组有两种方法 1. 方式一name=("李明" "Andy" "李磊" "james") echo $name打印第一个元素 2. 方式二name=() name[0]="404" name[1]="Andy" name[2]="柚芒子" name[3]="全班最菜" echo ${name[0]} ${name[1]}读取数组 语法结

no pain !no gain ! 342

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Shell之字符串、数组、内置命令、运算符

😹 作者: gh-xiaohe 😻 gh-xiaohe的博客 😽 觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!!

gh_xiaohe的博客 1822

Shell入门(三)数组、基本运算符

Shell 数组数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。 与大部分编程语言类似,数组元素的下标由0开始。 Shell 数组用括号来表示,元素用”空格”符号分割开,语法格式如下:array_name=(value1 ... valuen)实例#!/bin/bash # author:菜鸟教程 # url:www.

lzl759552889的博客 1384

shell 数组与基本运算符 -shell 笔记3

目录 shell 数组 基本运算符 expr 条件表达式 关系运算符 布尔运算符 字符串运算符 read 命令 shell 数组 shell中用括号来表示数组,数组元素用空格符号分割开。 如:array_name=(value0 value1 value2 value3) 或者: array_name=( value0 value1 value2 value3 ) 可以单独定义数组的各个分量,且可以使用不连续的下标,下标的范围也没有限制。 array_..

wangwangstone的博客 616

shell编程之简单四则运算及数组定义

shell简单四则运算及数组定义 文章目录shell简单四则运算及数组定义一、简单四则运算1. 四则运算符号2.了解i++和++i二、数组定义1. 数组定义2. 其他变量定义 一、简单四则运算 算术运算:默认情况下,shell就只能支持简单的整数运算 运算内容:加(+)、减(-)、乘(*)、除(/)、求余数(%) 1. 四则运算符号 2.了解i++和++i 对变量的值的影响: [root@wol...

wolfGuiDao的博客 1094

shell脚本数学运算,数组,文本处理

知识要点 数学运算 数组的使用 seq 、tr 、sort、uniq、cut等命令 整数运算 1.常用运算符 加法运算:+ 减法运算: - 乘法运算: * 除法运算: / 得到的是商例如1/2得到是0 求模(取余)运算: % 求幂运算:** bc中的幂运算符号是^ 2.常用整数运算 第一种 declare -i a=1020;echo a少用第二种a=a 少用 第二种 a=a少用...

qq_43028054的博客 592

linux shell 数组运算,Linux Shell编程(3) - Shell 运算

一、declare 命令shell 变量是弱类型,且默认都是字符串型declare 命令可以给变量设定或取消类型1. 语法declare [-/+][选项] [变量名]2. 选项-:给变量设定类型属性+:取消变量的类型属性-a:将变量声明为数组类型(array)-i:将变量声明为整数类型(integer)-x:将变量声明为环境变量-r:将变量声明为证只读变量-p:显示指定变量的被声明的类型3. 把...

weixin_33228847的博客 333

Shell脚本学习日志 —Shell数组、运算符、逻辑运算符

Shell脚本学习日志 —Shell数组、运算符、逻辑运算符

qq_53734051的博客 261

linux数组计算,shell脚本数组元素的数学运算

今天在用shell脚本写斐波那契数列计算时,一直不停的报错,主要原因是因为shell脚本实在太不智能,在进行数组运算时需要写大量的符号,很容易混淆,所以稍微总结一下数组元素的计算。首先,有几种情况:1 在将一个数学运算结果赋值给某普通变量时:(1) let var=算术表达式(2) var=$[算术表达式](3) var=$((算术表达式))(4) var=$(expr arg1 arg2 arg...

weixin_34377744的博客 530

菜鸟教程Shell笔记 数组 运算符 echo命令

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由 0 开始。Shell 数组用括号来表示,元素用"空格"符号分割开读取数组关联数组Bash 支持关联数组,可以使用任意的字符串、或者整数作为下标来访问数组元素。关联数组使用 declare 命令来声明,语法格式。

UQWRJ的博客 436

shell编程-数组与运算符详解(超详细)

本文将介绍Shell编程中的数组和运算符。Shell数组是一种用于存储多个值的数据结构,可以方便地处理和管理一组相关的数据。我们将学习如何声明、初始化、访问和操作数组。同时,我们还将介绍Shell中常用的运算符,包括算术运算符、关系运算符、逻辑运算符、字符串运算符和文件测试运算符。这些运算符可以用于执行各种数值和逻辑操作,以及检查文件的属性和状态。通过掌握数组和运算符的使用,您可以更加灵活地编写Shell脚本,处理和管理数据,执行各种操作,并对文件进行检查和处理。希望本文对您学习Shell编程有所帮助。

zcs2312852665的博客 1032
上一篇: hive 保留四位小数
下一篇: Liunx 文本匹配与正则表达式
MusicDancing
博客等级 码龄7年 2684粉丝 314原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值