如何在浮点上使用 expr?

2024-01-03

我知道这是一个非常愚蠢的问题,但我不知道如何在 bash 中做到这一点:

20 / 30 * 100

它应该是66.67但 expr 说0,因为它不支持浮动。 Linux 中的什么命令可以代替 expr 并执行此等式?


bc将为您执行此操作,但顺序很重要。

> echo "scale = 2; 20 * 100 / 30" | bc
66.66
> echo "scale = 2; 20 / 30 * 100" | bc
66.00

或者,对于您的具体情况:

> export ach_gs=2
> export ach_gs_max=3
> x=$(echo "scale = 2; $ach_gs * 100 / $ach_gs_max" | bc)
> echo $x
66.66

无论您选择哪种方法,都可以将其作为一项功能纳入其中,让您的生活更轻松:

#!/bin/bash
function pct () {
    echo "scale = $3; $1 * 100 / $2" | bc
}

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

如何在浮点上使用 expr? 的相关文章

  • Numpy 的舍入方式与 Python 不同

    The code import numpy as np a 5 92270987499999979065 print round a 8 print round np float64 a 8 gives 5 92270987 5 92270
  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • Bash 完成脚本在某些参数选项后完成文件路径

    我正在为命令行工具编写 bash 完成脚本 plink local cur prev opts COMPREPLY cur COMP WORDS COMP CWORD prev COMP WORDS COMP CWORD 1 opts 1
  • 如何使用 bash 脚本关闭所有终端,在每个终端中有效地按 Ctrl+Shift+Q

    我经常打开许多终端 其中一些正在运行重要的进程 例如服务器 而另一些则没有运行任何东西并且可以关闭 如果您按 重要 则会弹出确认提示Cntrl Shift Q在其中 如下所示 我想要一个 bash 脚本 它可以关闭所有终端 但将 重要 终端
  • 子 shell 何时继承其父 shell 环境?

    什么情况下将shell的环境传递给子shell 子 shell 始终从父 shell 获取所有变量 man bash将描述所有使用子shell的情况 主要是 command command command and command 所谓环境只
  • C# 中四舍五入到偶数

    我没有看到 Math Round 的预期结果 return Math Round 99 96535789 2 MidpointRounding ToEven returning 99 97 据我了解 MidpointRounding ToE
  • ANSI 转义码在行尾有奇怪的行为

    重现步骤 考虑以下 shell 命令 echo e e 41mTest nTest2 e 0mTest3 它打印Test并在下一行中Test2具有红色背景 使用 ANSI 转义码 Test2后面直接是Test3这是无色的 行为 第一次执行此
  • IFS 分隔一个字符串,如“Hello”,“World”,“this”,“is,一个无聊”,“line”

    我正在尝试解析 csv 文件 但 IFS 遇到一些问题 该文件包含如下行 Hello World this is a boring line 各列用逗号分隔 因此我尝试使用以下代码分解该行 IFS read r a tempArr lt l
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 从 bash 脚本运行节点

    很简单 我正在尝试使用 cron 自动运行 nodejs 脚本 但是脚本本身似乎无法运行该文件 我的脚本很简单 usr bin env node node var node assets js update js 但是 在运行此命令时 它返
  • MP4 到 DASH(bash 脚本)

    我有一个网站 用户可以在其中上传视频文件 我想使用 DASH 流式传输所有内容以获得自适应比特率流式传输 因此 我编写了一个 bash 脚本 由 cron 运行 将所有 mp4 文件转换为 DASH 但它无法正常工作 出了什么问题 例如 使
  • 如何从 powershell 中设置 bash 的环境变量?

    使用powershell我该如何设置 https askubuntu com q 1205227 45156 the 环境 https stackoverflow com q 5327495 262852变量 这里 特别 https sta
  • 别名在 Bash 脚本中不起作用[重复]

    这个问题在这里已经有答案了 我有一个可执行文件command sh bin bash alias my command echo ok my command 我的终端是bash 当我像这样运行时 command sh 效果很好 当我像这样运
  • execlp 多个“程序”

    我想运行类似的东西 cat file tar base64 myprogram c base64 d tar zvt I use execlp运行该进程 当我尝试运行类似的东西时cat它有效 但如果我尝试运行base64 d tar zvt
  • BASH 脚本编译多个 C++ 文件 - OpenCV

    请参见在C 和OpenCV中调用其他文件中的函数 https stackoverflow com questions 24442836 call functions in other files in c and opencv 对于最初的问
  • 如何显示 NUL 分隔数据的中间管道结果?

    如何组合以下两个命令 find print0 grep z pattern tr 0 n find print0 grep z pattern xargs 0 my command 进入单个管道 如果我不需要 NUL 分隔符那么我可以这样做
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 如何将长选项与 Bash getopts 内置一起使用?

    我正在尝试解析 tempBash getopts 的选项 我这样调用我的脚本 myscript temp foo bar someFile 这是我用来解析选项的代码 while getopts temp shots o option do
  • 我的 unix 脚本出了什么问题

    bin bash while echo n Player s name read name name ZZZ do searchresult grep name playername if searchresult 0 then echo

随机推荐

  • 在 Qt 5 中连接过载信号和槽

    我在掌握 Qt 5 中新的信号 槽语法 使用指向成员函数的指针 时遇到困难 如中所述新信号槽语法 https wiki qt io New Signal Slot Syntax 我尝试改变这个 QObject connect spinBox
  • 从API接收数据后R httr content(req)到数据帧

    我正在尝试通过美国人口普查地理编码器对一组地址进行批量地理编码 http geocoding geo census gov geocoder http geocoding geo census gov geocoder 我发现了这个问题 在
  • 如何激活由另一个进程启动的窗口

    我想这可能是不可能的 请证明我错了 以下设置 我的带有 GUI 的 NET C 应用程序 我们称其为gui 打开另一个应用程序 我们称之为server 通过创建一个new Process The server 由其他人开发 以一个参数启动以
  • querydsl 3.3.0 - 在具有 N 个布尔参数的查询中使用 collection.any() 和 elementcollections 生成 N 个“存在”子查询

    我正在尝试查询 ElementCollection 中匹配 2 个条件的特定项目 当我在QueryDSL中编写查询时 Hibernate生成的查询包括2个带有子查询的存在语句 每个子查询包含1个我指定的条件 这是一个例子 Entity pu
  • Integer 对象的同步块

    我刚刚遇到了 Java 中的同步块 并编写了一个小程序来测试它是如何工作的 我创建了 10 个线程 并让每个线程递增 Integer 对象 1000 次 因此 对于同步 我假设所有线程完成工作后的结果为 10000 而没有同步的结果则小于
  • Laravel 5.1 的安全性如何? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在阅读了 SQL 注入之后 我想知道在 Laravel 中创建应用程序的安全性如何 以及如何测试您的安全性是否满足当今的标准 我开发了
  • 关闭并处置 - 调用哪个?

    阅读主题后SqlCommand Dispose 足够了吗 https stackoverflow com questions 60919 is sqlcommanddispose enough and 关闭和处置 WCF 服务 https
  • 我可以在 ASP.net MVC RC2 中的另一个表单标签中使用一个表单标签吗

    我目前正在 MVC2 中开发应用程序 我想在我的应用程序中使用多个表单标签 在我看来 我创建了一个具有删除选项的表 我正在通过 发布个人删除 来执行此操作 因此我为每个按钮创建了表单标记 我还希望用户提供删除多个记录的选项 因此我为他们提供
  • 通过 C# 调用调用带有可选参数的 Visual Basic 函数

    我正在使用客户端与不同层上的 Visual Basic 代码进行交互C http en wikipedia org wiki C Sharp 28programming language 29程序 Visual Basic 函数签名如下所示
  • 使用 CSS 自动添加“必填字段”星号以形成输入

    有什么好方法可以克服此代码无法按预期工作的不幸事实 div class required div
  • JTable动态改变行高[重复]

    这个问题在这里已经有答案了 我在动态更改行的高度时遇到问题 是否有需要重载的方法 Edit 抱歉 这是我的第一篇短文 我的问题实际上与根据内容更改行高有关 所以到目前为止我所做的是创建一个实现 TabelCellRenderer 的内部类
  • service 命令的 --limit-xxx 选项是否限制每个服务或每个容器的资源?

    service createdocker 1 12的命令有两个限制cpu和内存的选项 如下 limit cpu value Limit CPUs default 0 000 limit memory value Limit Memory d
  • Lift 框架是否像 Ruby on Rails 或 Django 一样“简单”?

    只是想知道有没有人有这三者的经验 我已经阅读了一些 RoR 并使用了 Django 它们看起来相当容易使用 电梯像这两个一样 容易 吗 我知道简单是主观的 这里没有上下文 我的意思是在非常高的水平和一般意义上 我目前正在做 lift 的一系
  • 在 dart 中将整数位模式解析为 IEEE 754 浮点数

    我通过接口 蓝牙 列表 获取 4 个字节的数据 数据代表 IEEE 754 浮点数 例如0x3fd0a3d7 大约代表1 63作为二进制32float dart lang 有没有办法将其转换 类型双关为 float 然后 double 就像
  • Tensorflow:GPU 加速仅在首次运行后发生

    我已经在我的机器 Ubuntu 16 04 上安装了 CUDA 和 CUDNNtensorflow gpu 使用的版本 CUDA 10 0 CUDNN 7 6 Python 3 6 张量流 1 14 这是输出nvidia smi 显示显卡配
  • 用于计算 Krippendorff Alpha 值的 PHP 脚本

    我找不到任何 PHP 脚本来计算克里彭多夫的阿尔法 http en wikipedia org wiki Krippendorff s Alpha 我正在从事的一个项目需要这个 但我在网上找到的唯一东西要么是用 Python 编写的 我一无
  • 使用 ProGuard 混淆 Android 库项目源代码

    我正在使用 Eclipse 开发一个 Android 库项目 我想要获得许可 为了防止我的客户轻松地进行逆向工程和阅读我的代码 我想混淆我的库的源代码 根据我所做的研究 我发现 ProGuard 似乎被认为最适合我的使用 我见过一个post
  • R 的 t 分布表示“可能尚未实现完全精度”

    我正在处理一个问题 通常需要计算 R 中尾部相当远的 t 分布的密度 例如 使用 R 的 t 分布函数 dt 1 424781 1486 5 回报 1 2 75818e 10 我的一些最终输出 使用此密度作为输入 与我的同事在 MATLAB
  • .net4 中未调用托管 C++ 静态构造函数

    我最近将我正在处理的项目从 NET 3 5 迁移到 NET 4 我使用 C 托管 C 和非托管 C 在我的托管 C 互操作 之一中 我有一个静态构造函数 public ref class StaticPool public BaseStat
  • 如何在浮点上使用 expr?

    我知道这是一个非常愚蠢的问题 但我不知道如何在 bash 中做到这一点 20 30 100 它应该是66 67但 expr 说0 因为它不支持浮动 Linux 中的什么命令可以代替 expr 并执行此等式 bc将为您执行此操作 但顺序很重要