Shell学习 - 2.28 Shell declare -i:将变量声明为整数类型

在《Shell declare命令》一节中,我们已经讲解了 declare 命令的各种选项,为了让 Shell 进行整数运算,本节我们重点讲解-i选项。

默认情况下,Shell 中每一个变量的值都是字符串(参见之前的《Shell变量》),即使你给变量赋值一个数字,它其实也是字符串,所以在进行数学计算时会出错。

使用 declare 命令的-i选项可以将一个变量声明为整数类型,这样在进行数学计算时就不会作为字符串处理了,请看下面的例子:


#!/bin/bashdeclare -i m n retm=10n=30ret=$m+$necho $retret=$n/$mecho $ret运行结果:403

除了将 m、n 定义为整数,还必须将 ret 定义为整数,如果不这样做,在执行ret=$m+$n和ret=$n/$m时,Shell 依然会将 m、n 视为字符串。

此外,你也不能写类似echo $m+$n这样的语句,这种情况下 m、n 也会被视为字符串。

总之,除了将参与运算的变量定义为整数,还得将承载结果的变量定义为整数,而且只能用整数类型的变量来承载运算结果,不能直接使用 echo 输出。

和 (())、let、$[] 不同,declare -i的功能非常有限,仅支持最基本的数学运算(加减乘除和取余),不支持逻辑运算(比较运算、与运算、或运算、非运算),所以在实际开发中很少使用。

参考:

Shell declare -i:将变量声明为整数类型 (biancheng.net)

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

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

相关文章

从 Android 恢复已删除文件的 3 种简单方法

如何从 Android 恢复已删除的文件?毫不犹豫,有些人可能会认为从 Google 备份恢复 Android 文件太容易了。但是,如果删除的文件未同步到您的帐户或未备份怎么办?您错误的恢复可能会永久删除您想要的数据。因此,我们发布…

常见的软件架构模式

在软件开发过程中,软件架构模式是实现高质量、可扩展系统的关键。本文将介绍一些常见的软件架构模式,分析其优缺点和适用场景,从而帮助大家在实际项目中做出更明智的架构选择(注意以下的架构模式相互之间并不一定互斥,…

23种设计模式之抽象工厂

简单工厂和工厂方法 关注 产品等级 抽象工厂 关注 产品族 对于比较稳定的产品,抽象工厂更有效率(一个工厂生产很多产品族) 抽象工厂代码例子加深理解

vue中使用自定义组件规则

使用自定义组件规则 1.定义组件中不要绑定el 2.data必须使用函数写法 3.注册时可以取别名,别名不可以驼峰命名,需要使用-连接,不能使用已有的标签作为名称 4.模板时只能有一个父级,只在vue2中 5.未搭建脚手架使用单标签会使后面代…

我与C++的爱恋:类和对象(三)

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:我与C的爱恋 先来回顾一下,上一节的内容并且通过上次的内容来做一道oj题。 https://leetcode.cn/problems/implement-queue-using-stacks/ class MyQueue { private:stack&l…

【LeetCode:216. 组合总和 III + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

JavaSE-15笔记【注解(+2024新)】

文章目录 1.注解概述2.几个常用的JDK内置的注解2.1 Deprecated2.2 Override2.3 SuppressWarnings2.4 FunctionalInterface 3.自定义注解3.1 注解也可以定义属性3.2 注解的使用规则补充 4.元注解4.1 Retention4.2 Target4.3 Documented4.4 Inherited4.5 Repeatable 5.通过反射获…

Python的pytest框架(3)--fixtrue固件

fixture是pytest的一项核心特性,它提供了一种组织和管理测试依赖项(如初始化环境、创建资源、清理操作等)的有效机制。下面将对fixture进行深入讲解,包括其基本概念、作用、使用方式、特性以及高级应用: 目录 一、基…

微信小程序开发

微信小程序隶属于前端,因此我们只需要了解掌握一些基本的功能与业务逻辑即可。 HttpClient HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议…

Java初学日记 十三 (GUI)

GUI编程 概述 GUI(Graphical Uers Interface)全称图形用户界面 swing指javax.swing包,该包中包含实现界面的类,这些类都可称为组件 组件可分为两大类: 容器组件 窗口 import javax.swing.*; ​ public class LoginFrame extends JFram…

深入理解与运用Vue 2中的插槽(Slots)

深入理解与运用Vue 2中的插槽(Slots) Vue.js作为一种强大的前端框架,以其组件化、声明式编程理念深受开发者喜爱。其中,Vue 2的插槽(Slots)机制更是极大地提升了组件复用性和灵活性。本文将深入探讨Vue 2中…

FreeSWITCH 1.10.10 简单图形化界面15 - JsSIP媒体控制(LookLook)

FreeSWITCH 1.10.10 简单图形化界面15 - JsSIP媒体控制 0、 界面预览1、本地媒体流获取session本地音频本地视频 2、远端媒体流获取媒体流远端音频远端视频 FreeSWITCH界面安装参考:https://blog.csdn.net/jia198810/article/details/137820796 0、 界面预览 http…

Robbins-Monro(RM)算法【随机近似】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实践—GridWorld 第…

WP-AutoPostPro 汉化版: WordPress自动采集发布插件

WP-AutoPostPro 是目前最好用的WordPress自动采集发布插件,最大的特点是可以采集来自于任何网站的内容并自动发布到你的WordPress站点。真正做到可以采集任何网站的内容并自动发布,采集过程完全自动进行无需人工干预,并提供内容过滤、HTML标签…

libssh C++封装(一)

1 概述 libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C封装。 libssh下载地址 2 设计 2.1 类图 类型说明: Session SSH连接…

【设计模式】9、facade 外观模式

文章目录 九、外观模式9.1 player9.1.1 player_test.go9.1.2 player.go 9.2 login_register9.2.1 account_test.go9.2.2 account.go 九、外观模式 https://refactoringguru.cn/design-patterns/facade 如果有一个复杂的系统, 内部有很多子系统, 可以用 facade 封装一层, 只暴…

WPF-关于动画Animation(及其常见问题)

目录 一、动画合集 常见动画类型 1、资源里添加动画资源 2、事件触发器里开始一个动画 3、Double型关键帧动画 4、Object型关键帧动画 5、Color型关键帧动画 6、String型关键帧动画 7、Matrix型沿路径动画 二、扩展 Ⅰ 动画常见问题 1、控制动画结束问题 Ⅱ 流动…

Centos7 的 Open Stack T 版搭建流程 --- (三)配置消息队列

配置消息队列 文章目录 配置消息队列(1)安装 RabbitMQ 服务并配置新用户权限controller (2)如何开启图形化(拓展) (1)安装 RabbitMQ 服务并配置新用户权限 controller yum install…

1115: 【C2】【字符串】【入门】最长最短单词

题目描述 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格是单词间的间隔。 试输出第1个最长的单词和第1个最短单词。 输入 一行句子。 输出 两…

天星金融消保课堂开讲,金融健康意识再提升

近年来,随着消费者对投资理财等金融服务需求的日益增长,金融广告成为消费者获取金融信息的重要途径。然而,一些不法分子通过投放非法金融广告,诱导消费者参与非法金融活动,给消费者的权益带来了严重威胁。为此&#xf…