书写优雅的shell脚本(五)- shell中(())双括号运算符

在使用shell的逻辑运算符”[]”使用时候,必须保证运算符与算数之间有空格。 四则运算也只能借助:let,expr等命令完成。 今天讲的双括号”(())”结构语句,就是对shell中算数及赋值运算的扩展。 

1.语法: 
((表达式1,表达式2…)) 

2.特点: 
(1)在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。 
(2)在双括号结构中,所有变量可以不加入:“$”符号前缀。 
(3)双括号可以进行逻辑运算,四则运算 
(4)双括号结构 扩展了for,while,if条件测试运算 
(5)支持多个表达式运算,各个表达式之间用“,”分开 

3.使用实例: 
3.1 扩展四则运算 
代码如下: 
#!/bin/sh 
a=1; 
b=2; 
c=3; 
((a=a+1)); 
echo $a; 
a=$((a+1,b++,c++)); 
echo $a,$b,$c 
运行结果: 
sh testsh.sh 
2 
3,3,4 
双括号结构之间支持多个表达式,然后加减乘除等c语言常用运算符都支持。如果双括号带:$,将获得表达式值,赋值给左边变量。 

3.2 扩展逻辑运算 
代码如下: 
#!/bin/sh 
a=1; 
b="ab"; 
echo $((a>1?8:9)); 
((b!="a"))&& echo "err2"; 
((a<2))&& echo "ok"; 
运行结果: 
9 
err2 
ok 

3.3 扩展条件测试运算(if)
代码如下:
a=1
b=2
if ((a<b));then
echo "true";
fi
if ((a>b));then
echo "false"
fi
运行结果:
true

3.4 扩展流程控制语句(逻辑关系式) 
代码如下: 
#!/bin/sh 
num=100; 
total=0; 
for((i=0;i<=num;i++)); 
do 
((total+=i)); 
done 
echo $total; 
total=0; 
i=0; 
while((i<=num)); 
do 
((total+=i,i++)); 
done 
echo $total; 
if((total>=5050));then 
echo "ok"; 
fi 
运算结果: 
5050 
5050 
ok 

有了双括号运算符:[[]],[],test 逻辑运算,let,expr就不是必须的了。


转载于:https://www.cnblogs.com/jerryshao2015/p/4419666.html

多年总结,倾情奉献,手把手教你如何从零开始写出优雅的shell脚本(一) 多年总结,倾情奉献,手把手教你,如何从零开始写出优雅的shell脚本。 shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入结果给操作系统,并处理各种各样的操作系统的输出结果, 输出到屏幕反馈给用户。这种对话的方式可以是交互式的(从键盘输入命令,可以立即得到shell的回应),例如输入pwd,屏幕会返回相应结果 阅读详情

相关推荐

多年总结,倾情奉献,手把手教你如何从零开始写出优雅的shell脚本(二)

多年总结,倾情奉献,手把手教你,如何从零开始写出优雅的shell脚本。 shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入结果给操作系统,并处理各种各样的操作系统的输出结果, 输出到屏幕反馈给用户。这种对话的方式可以是交互式的(从键盘输入命令,可以立即得到shell的回应),例如输入pwd,屏幕会返回相应结果

景天科技苑 1万+

Shell| shell中双小括号的使用方法

使用语法: ((表达式))用来扩展Shell中的算术运算,以及赋值运算,扩展for,while,if条件测试运算. 注意点: 1.在双括号结构中,所有的表达式可以像c语言一样,如a++,b-- 2.在双括号结构中,所有变量可以不加入$符号前缀,也可以加入. 3.在双括号可以进行逻辑运算,四则运算,而且运算符合数值之间可以没有空格,也可以有空格. 4.双括号结构扩展了for,while,...

YvesHe的专栏 8886

海思MIPI屏调试实战:从参数计算到点亮屏幕的完整指南

本文提供了一份海思平台MIPI屏幕调试的完整实战指南。文章以Hi3516DV300调试800x1280分辨率屏幕为例,详细讲解了从参数计算、配置文件修改到最终点亮屏幕的全流程,并分享了常见问题排查与进阶优化技巧,旨在帮助嵌入式开发者高效解决MIPI屏调试难题。

weixin_29190573的博客 736

linux shell知识汇总

方法一:利用while do循环,举例,while true;do ls;sleep 1;done 方法二:利用for循环,举例1,for((a=1;a<=10;a++));do echo "haha";done 举例2,for i in {host1,host2,host3};do ping -c 4 $i;...

iris_csdn的博客 2129

【招聘测评题】中的(行测)图形推理题基本逻辑总结(附例题)

参加招聘的时候,一般提交完简历就需要做测评试卷,测评里面除了性格分析的题,一般会有几十道类似公务员行测的素质测评题,让人很是挠头,据说题库多取自北森。刷题用处不大,这里总结一下图形推理题中常考的几个基本逻辑。

Yujian2563的博客 7万+

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

weixin_37584728的博客 2269

shell--双括号

shell双括号的作用可用运算符号注意事项 使用双括号可以进行算数运算,可以写类C语言的运算表达式。 a++ 或者 b-- 或者a+=1 或者a<b 或者a!=b if-then语法 if condition then commands fi if [ -d file ] then commands fi if ((expression)) then commands fi 可用运算符号 ...

Test_Simon的博客 978

MaixCAM2 4K AI相机硬件解析与开发实战

嵌入式AI视觉开发中,边缘计算设备的选择直接影响项目落地效果。以NPU为核心的AI加速技术通过专用指令集优化,可在低功耗下实现10+TOPS算力,典型应用包括工业质检、智能门禁等实时场景。MaixCAM2作为新一代4K AI相机,搭载AX630 SoC芯片,其双核Cortex-A53与NPU的异构架构,在运行YOLOv11n模型时可达113FPS,显著优于传统方案。开发时需注意模型量化部署技巧,如INT8量化需500+张校准图片覆盖多光照条件,避免准确率下降。设备扩展性方面,PMOD接口支持热成像、ToF传

weixin_30819085的博客 690

Shell中的括号、双括号、方括号和双方括号

括号 括号一般在命令替换的时候使用。 #!/bin/bash today=$(date +%y%m%d) touch log.$today 双括号 使用双括号,在比较过程中使用高级数学表达式 符号 描述 val++ 后增 val-- 后减 ++val 先增 --val 先减 ! 逻辑求反 ~ 位求反 ** 幂求反 << 左位移 >> 右位移 &&

RyCloud的博客 2841

Openclaw 附录B 常用Skills清单

核心作用支持URL、网页、PDF、图片、音频和YouTube视频的摘要与字幕提取,由OpenClaw创始人@steipete开发的官方内置Skill。安装⚠️说明:原推荐的summarize未在ClawHub验证到,YouTube字幕提取功能已内置于summarize中。使用场景“提取这个2小时Next.js教程视频的核心代码逻辑,按章节整理成学习笔记”推荐指数:⭐⭐⭐⭐。

Maynor的博客 857

新手秒变高手:使用一键脚本快速安装OpenClaw并完成初始化配置

一键脚本是一种自动化工具,可以帮助用户快速完成软件的安装和配置过程,无需手动执行繁琐的命令。OpenClaw提供了官方的一键安装脚本,让新手用户也能轻松部署OpenClaw。

一键难忘的博客 358

shell 使用双括号

shell 使用双括号

m0_60626261的博客 969

【Claude Code 源码解析教程】第4章:QueryEngine 查询引擎

本章深入解析 Claude Code 的核心引擎——QueryEngine,它是整个对话系统的"心脏",负责管理会话状态、消息处理流程和多轮对话支持。

rengang66的博客 269

书写优雅的shell脚本(一)- if语句

使用unix/linux的程序人员几乎都写过shell脚本,但这其中很多人都是为了完成功能而在网上找代码段,这样写出来的shell脚本在功能方面当然是没有什么问题,但是这样的方式不能写出优雅的shell脚本。 从今天开始,starfe就将自己平时在书写shell脚本过程中的经历做一总结,力图形成一个系列---“书写优雅的shell脚本”。在此,对“优雅”一词的定义有3点:(1)健壮;(2)结构清

行云流水的博客 3万+

【2026年华为暑期实习(非AI方向(通软&嵌软&测试&算法&数据科学))-4月8日-第一题- 包裹的编码】(题目+思路+Java&C++&Python解析+在线测试)

摘要:该问题要求将给定的十进制整数N转换为混合进制编码字符串,并处理回文检测。首先根据N的符号位确定编码首位(0或1),然后按输入的进制序列依次对N的绝对值进行取余和整除操作,得到编码数组。将数组元素转换为字母后生成字符串,若字符串为回文则添加"(palindrome)"后缀;否则输出最长回文子串(字典序最小)。算法采用中心扩展法检测回文,时间复杂度为O(L²),空间复杂度为O(L),其中L为字符串长度。

m0_73659489的博客 129

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【转载】书写优雅的shell脚本

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34377919的博客 272

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

linux|shell编程|shell脚本的一些高级技巧(shell脚本内的括号,中括号,花括号,逻辑判断,脚本优雅退出等等)

shell脚本说容易其实也是容易的,说难,那真的是可以难到让人挠头的地步,因为逻辑判断,自定义变量,环境变量,系统内置函数,脚本结构设计这些糅合到一起后,脚本可能会变的非常复杂了。

zsk_john的技术分享专用博客 739

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

如何编写一个优雅的Shell脚本(一)

简介    shell脚本是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,本文简述如何编写一个优雅的shell脚本。 使用技术介绍 eval命令    可以将一个字符串当作一个命令执行。    CMD="ls -ltr" eval $CMD 内置参数变量 $$   获取当前程序进程ID。 $#   获取当前程序传入的参数个数,可以使用该内置变量对程序参数做判断...

IT_xhf的专栏 1767

linux常用Shell 脚本

常用shell脚本

nalanxiaoxiao2011的博客 395

Shell脚本中的算术运算:三种高效方法实现数值相加减

本文详细解析了Shell脚本中实现数值算术运算的三种高效方法:let命令、双小括号(())和expr命令。针对Shell默认将变量视为字符串的特性,文章通过实例对比了各自的语法、性能及适用场景,帮助开发者根据脚本兼容性、执行效率和代码简洁性选择最佳方案,从而在自动化任务中精准处理数值计算。

q6r7s8t9的博客 629

Shell项目中的条件语句实现方案解析

Shell项目中的条件语句实现方案解析 在Shell脚本语言开发中,条件控制结构是最基础也是最重要的语言特性之一。本文将以prefix-dev/shell项目为例,深入探讨条件语句(if/then/else/elif)的设计与实现思路。 条件语句的基本结构 在Shell脚本中,条件语句通常采用以下形式: if [[ condition ]]; then commands elif [[ c...

gitblog_07654的博客 373

如何编写一个优雅的Shell脚本(三)

如何编写一个优雅的Shell脚本(三)Shell脚本之AWK介绍和总结简介awk语法awk常用命令awk工作介绍awk文件关联awk文件拆分总结 Shell脚本之AWK介绍和总结 简介 awk语法 awk常用命令 awk工作介绍 awk文件关联 awk文件拆分 总结 ...

IT_xhf的专栏 578
上一篇: java中io类型及成熟io框架
下一篇: Thread.setDaemon详解
dgit3228
博客等级 码龄12年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值