如何在 Bash 脚本中添加数字?

2023-12-28

我有这个 Bash 脚本,但在第 16 行遇到了问题。 我如何获取第 15 行的先前结果并添加 它到第 16 行的变量?

#!/bin/bash

num=0
metab=0

for ((i=1; i<=2; i++)); do
    for j in `ls output-$i-*`; do
        echo "$j"

        metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} END { print sum/120}') (line15)
        num= $num + $metab   (line16)
    done
    echo "$num"
 done

对于整数:

  • Use 算术展开 http://tldp.org/LDP/abs/html/arithexp.html: $((EXPR))

    num=$((num1 + num2))
    num=$(($num1 + $num2))       # Also works
    num=$((num1 + 2 + 3))        # ...
    num=$[num1+num2]             # Old, deprecated arithmetic expression syntax
    
  • 使用外部expr公用事业。请注意,这仅适用于非常旧的系统。

    num=`expr $num1 + $num2`     # Whitespace for expr is important
    

对于浮点数:

Bash 不直接支持这一点,但是您可以使用一些外部工具:

num=$(awk "BEGIN {print $num1+$num2; exit}")
num=$(python -c "print $num1+$num2")
num=$(perl -e "print $num1+$num2")
num=$(echo $num1 + $num2 | bc)   # Whitespace for echo is important

您还可以使用科学记数法(例如,2.5e+2).


常见陷阱:

  • 设置变量时,两边不能有空格=,否则它将强制 shell 将第一个单词解释为要运行的应用程序的名称(例如,num= or num)

    num= 1罢工> num =2罢工>

  • bc and expr期望每个数字和运算符作为单独的参数,因此空格很重要。他们无法处理像3+ +4.

    num=`expr $num1+ $num2`罢工>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Bash 脚本中添加数字? 的相关文章

  • sed:更改 .yml 文件中环境属性的值

    我有一个 yml 文件 用于配置应用程序的环境属性 如下所示 env1 prop1 value1 prop2 value2 propn valuen env2 prop1 value1 prop2 value2 prop3 value3 p
  • 查找-exec选项

    比如说 我想找到一些文件并执行 chmod 并使用另一个命令对其执行某些操作 例如 find name txt exec chmod 666 cp dst it says find missing argument to exec 我该如何
  • 如何将 Markdown 文档批量转换为 HTML?

    我正在用 Markdown 编写一些文档 并为文档的每个部分创建一个单独的文件 我希望能够一次性将所有文件转换为 HTML 但我找不到其他人尝试过同样的事情 我使用的是 Mac 所以我认为一个简单的 bash 脚本应该能够处理它 但我从未在
  • 将文本文件转换为逗号分隔的字符串

    我似乎没有找到与这个问题完全匹配的问题 我有一个文本文件 每行有一个文本标记 没有任何逗号 制表符或引号 我想根据文件内容创建一个逗号分隔的字符串 Input one two three Output one two three 我正在使用
  • bash while 循环线程

    我有一个 while 循环读取来自 a 的行 hosts while read line do ip line check done lt hosts 我的问题是我可以使用某种方法来加快速度 或者一次在 10 个主机上运行检查 每个检查都在
  • bash 调整图像尺寸以适合特定大小

    我到处搜索但找不到这个问题的答案 我想精确输出一个文件夹中的所有图像 大小为 50Kb 并保持原始的宽高比 I tried ImageMagick并将大小调整为 250x250 例如 但它对我不起作用 它所做的是更改第一个尺寸并适应另一个尺
  • 将 erlang shell 作为守护进程/服务运行

    显然 我有一个在 Erlang shell 中运行的 Erlang 程序 我想监视它 这就是我要的 当机器启动时 Erlang shell 应该随之启动 并且在 shell 中运行的程序也应该随之启动 如果 Erlang shell 由于某
  • 在bash中将两个变量相除

    我试图在 bash 中划分两个 var 这就是我得到的 var1 3 var2 4 echo var1 var2 我总是遇到语法错误 有谁知道出了什么问题吗 shell 解析仅对整数除法有用 var1 8 var2 4 echo var1
  • 安全地记住 bash 脚本中的 ssh 凭据[重复]

    这个问题在这里已经有答案了 假设我有一个 bash 脚本 它通过 ssh 在远程计算机上执行命令 Do something here ssh otheruser host command1 Do something else ssh oth
  • bash 或 sh 中的“=”和“==”运算符有什么区别

    我意识到 和 运算符都可以在 if 语句中使用 例如 var some string if var some string then doing something fi if var some string then doing some
  • 如何查找出现在括号之间的所有单词?

    我有一个文件 其中包含括号中的一些单词 我想编制一个出现在那里的所有独特单词的列表 例如 This is some text This text has some words in parenthesis Sometimes there a
  • 命令行参数中的“-”(破折号)有什么魔力?

    例子 创建 ISO 映像并将其直接刻录到 CD mkisofs V Photos r home vivek photos cdrecord v dev dev dvdrw 更改到上一个目录 cd 侦听端口 12345 并解压发送到该端口的数
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • Bash:查找并连接文件

    我有以下结构 home DIR1 file ab csv DIR2 file cd csv DIR3 file3 ef csv Where file csv包含多行浮点数 每个 DIR 都有不同的浮点数 我想抓取所有的内容file csv文
  • -bash: gulp: 在 Mac 中找不到命令

    我尝试在 mac 中安装 gulp 如下所示 Is iMac itop npm root Users itop node modules Is iMac itop npm config set prefix usr local Is iMa
  • 从重定向到日志文件的程序输出中删除进度条

    我正在运行一个程序 它会输出进度条 我是这样做的 python train py tee train log The train log看起来像下面这样 这是1号线 Training 这是2号线 000 valid 100 2630 263
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • 子 shell 何时继承其父 shell 环境?

    什么情况下将shell的环境传递给子shell 子 shell 始终从父 shell 获取所有变量 man bash将描述所有使用子shell的情况 主要是 command command command and command 所谓环境只
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • 将终端颜色扩展到行尾

    我有一个生成 motd 的 bash 脚本 问题取决于某些终端设置 我不确定颜色是否会延伸到行尾 其他时候则不然 e g v s IIRC 一个只是普通的 gnome 终端 另一个是我的 tmux 术语 所以我的问题是如何才能将其扩展到 8

随机推荐

  • 从 UWP 商店应用程序向多个收件人发送电子邮件

    我有一个简单的目标 即打开一封电子邮件 在 Outlook 2016 中 其中为 Windows 10 UWP 应用程序中的多个收件人配置了 收件人 字段 我尝试了3种方法 1 推荐的方式 如UWP示例中的demod 使用EmailMess
  • 如何在 React Native 博览会中使用可教学机器模型

    我正在使用可教学机器导出模型 const modelJson require assets models model json const modelWeights require assets models weights bin use
  • ReactJs componentDidMount 执行两次

    我正在研究 ReactJs 并遇到一些问题 我的问题是我有一个使用最新 ReactJs v 18 0 0 的简单应用程序 并且 componentDidMount 执行两次 为什么 index js import createRoot fr
  • 如何暂时放弃root权限?

    我正在开发一个以 root 身份运行的守护进程 但需要与用户调用 API 我检查了 API 代码 它使用getuid 来获取用户 如果 root 用户通过以下方式放弃权限setuid 无法恢复到root 如果调用 seteuid API 仍
  • Laravel - Jenssegers MongoDB 嵌套数组更新不起作用

    有人可以指出我的代码有什么问题吗 我正在尝试通过 Laravel Jenssegers 更新 MongoDB 中的嵌套数组 这是我的代码 update status Journal where id 5cd10b325586e9122761
  • 使用 mongoose 创建动态模式

    我对 Node js 和 Mongoose 模块非常陌生 我正在尝试创建一个架构 其中有一些必填字段 而其他一些字段可以是动态的 我用过strict to false 我的代码如下所示 var mongoose require mongoo
  • hibernate中缺少@Temporal注释

    如果我们使用怎么办 Column name birth date nullable false length 19 public Date getBirthDate return this birthDate 代替 Temporal Tem
  • 试图摆脱空数据字段(一种空基优化?)

    我想要一个会计 仪表层 如果需要的话 它应该计算对象实例上的许多不同的 事件 事件 可以是发生的任何事情 例如 在一天结束时 您应该能够判断 文件已写入 5400 次 或者 锁拥塞 52 456 次 不拥塞 12 311 次 通过旋转获取
  • 在Python中绘制图表

    我是 Python 新手 正在尝试根据找到的 pyODE 教程绘制图表here http pyode sourceforge net tutorials tutorial1 html 我在用着pylab用于绘图 下面是代码的主要部分 add
  • Chrome 扩展程序无需单击图标即可加载脚本

    大家好 我想加载脚本 无论用户是否单击我的扩展图标 这是我的扩展 它工作得很好 但我希望它能够工作 而不需要用户单击图标来加载脚本 这是代码 name Injecta version 0 0 1 manifest version 2 des
  • 如何在 shell 脚本中缩小 JSON?

    我一直在寻找一种在 bash 控制台中丑化一些 JSON 的方法 这有助于随后在另一个命令中使用它 例如 将 json 内联传递给httpie Giving foo lorem bar ipsum 我想获得 foo lorem bar ip
  • 为什么 scala 值 class#toString 包含案例类信息?

    价值类别 http docs scala lang org overviews core value classes html可用于实现类型安全 而无需拆箱的开销 我的印象是 在运行时 此类类型 类将 不存在 被视为简单类型 例如 值类ca
  • nodeJs巨大数组处理抛出RangeError:超出最大调用堆栈大小

    这是处理大量条目的代码的一部分 最初它与文件系统一起工作并对文件进行一些操作 有什么好的方法可以绕过限制并防止抛出RangeError 超出最大调用堆栈大小 目前它允许我迭代大约 3000 个项目 var async require asy
  • TensorFlow:dataset.train.next_batch 是如何定义的?

    我正在尝试学习 TensorFlow 并研究以下示例 https github com aymericdamien TensorFlow Examples blob master notebooks 3 NeuralNetworks aut
  • 在 .NET 中获取默认 Windows 系统颜色

    我正在编写一个自定义按钮控件作为 即将成为 免费控件套件的一部分 并且我希望将我的 默认 控件颜色基于相应的 Windows 系统颜色 因此 在网上查找 默认 Windows 系统颜色 后 我找不到有关 Windows 控件 尤其是按钮控件
  • 如何在 iOS 上旋转自定义启动屏幕?

    我的启动屏幕可以正常工作 但我的应用程序可以在横向模式下运行 并且启动屏幕以默认的纵向模式显示 如何启动应用程序 以便启动屏幕像我的应用程序一样在横向模式之间旋转 我正在使用以下代码 BOOL shouldAutorotateToInter
  • 使用 MVVM 分配数据上下文的最佳方法是什么?

    我一直在寻找设置数据上下文属性的最佳方法 我找到了三种方法 在视图上分配数据上下文 在 XAML 或隐藏代码上 通过构造函数在 ViewModel 上分配数据上下文 使用一些配置来获取视图和视图模型引用 并通过一些基础结构类在运行时绑定数据
  • 滚动到 javascript 或 jquery 中具有特定 id 的 html 元素

    我有分配了 id 的 html 元素 现在我想滚动到这些元素 我看到 jQuery 有一个scrollTop 它接受一个整数值 我如何轻松地将带有 id 的特定 html 元素滚动到顶部 理想情况下 动画精美流畅 快速搜索显示了许多滚动插件
  • 如何使 ReactJS 应用程序在 AWS 上处于活动/可见状态

    我在AWS上开发了一个reactJS项目 前端 它有来自heroku的RESTFUL API 它们完全分离 即前端和后端 我已成功将文件上传到 S3 并激活了我的 CloudFront 发行版 但我无法真正找出问题所在 因为当我点击从域名生
  • 如何在 Bash 脚本中添加数字?

    我有这个 Bash 脚本 但在第 16 行遇到了问题 我如何获取第 15 行的先前结果并添加 它到第 16 行的变量 bin bash num 0 metab 0 for i 1 i lt 2 i do for j in ls output