Bash - 计算输入数字的平均值

2023-11-24

需要有关 Linux Bash 脚本的帮助。本质上,运行脚本时会要求用户提供三组数字,然后计算输入的数字并得出平均值。

#!/bin/bash
echo "Enter a number: "
read a
   while [ "$a" = $ ]; do

echo "Enter a second set of numbers: "
read b
b=$
   if [ b=$ ]

我在这件事上做错了吗?


仍然不确定你想要成为什么样的人。但我认为你可以循环3次。然后每次迭代都会得到一组数字,将它们相加并记录有多少个数字。所以像下面这样。 (注意$numbers和$sum自动初始化为0)

#!/bin/bash    
sum=0
numbers=0
for a in {1..3}; do
  read -p $'Enter a set of numbers:\n' b
  for j in $b; do
    [[ $j =~ ^[0-9]+$ ]] || { echo "$j is not a number" >&2 && exit 1; } 
    ((numbers+=1)) && ((sum+=j))
  done
done

((numbers==0)) && avg=0 || avg=$(echo "$sum / $numbers" | bc -l)
echo "Sum of inputs = $sum"
echo "Number of inputs = $numbers"
printf "Average input = %.2f\n" $avg                               

示例输出将是

Enter a set of numbers: 
1 2 3
Enter a set of numbers: 
1 2 3
Enter a set of numbers: 
7
Sum of inputs = 19
Number of inputs = 7
Average input = 2.71
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bash - 计算输入数字的平均值 的相关文章

  • 在 makefile 中,当我在 bash 函数内部使用 if 语句时,它会抛出错误

    在 makefile 中 当我在 bash 函数内部使用 if 语句时 它会抛出错误 test foo if a a then echo 1 fi foo hello ERROR bin sh 1 未找到 或与一个 test foo if
  • 如何在 Bash 中将字符串转换为小写

    有办法进去吗bash questions tagged bash将字符串转换为小写字符串 例如 如果我有 a Hi all 我想将其转换为 hi all 有多种方法 POSIX标准 https en m wikipedia org wiki
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • 访问 Linux 线程(pthreads)的本地堆栈

    我目前正在实现一个使用多线程但对总内存消耗有要求的应用程序 我希望有一个主线程执行 I O 并有几个工作线程执行计算 目前 我在主堆栈上有几个可供工作人员访问的数据结构 我使用 OpenMP 进行工作分配 由于主 工作者模式不能很好地与 O
  • 当存在点和下划线时,使用 sed 搜索并替换

    我该如何更换foo with foo sed 只需运行 sed s foo foo g file php 不起作用 逃离 sed s foo foo g file php Example cat test txt foo bar sed s
  • 如何使用sprof?

    请举例说明 从邮件中找到here http sources redhat com ml libc alpha 2003 07 msg00029 html and here http sourceware org ml binutils 20
  • 在Linux伪终端中执行从一个终端发送到另一个终端的字符串

    假设我有一个终端 其中 tty 的输出是 dev pts 2 我想从另一个终端向第一个终端发送命令并执行它 使用 echo ls gt dev pts 2 仅在第一个终端中打印 ls 有没有办法执行字符串 不 终端不执行命令 它们只是数据的
  • Linux下的C#,Process.Start()异常“没有这样的文件或目录”

    我在使用 Process 类调用程序来启动程序时遇到问题 可执行文件的层次结构位于 bin 目录下 而当前工作目录需要位于 lib 目录下 project bin a out this is what I need to call lib
  • 如何在Windows Git shell中运行./script.sh?

    也许这很尴尬 但是当我在 Git shell 中工作时 我无法在 Windows 上运行 sh 文件 也许我必须安装一些东西 但我认为 Git 会支持 bash 命令 我知道 Windows 不使用 sh 文件 我正在执行安装步骤游戏结束
  • 是否可以找到哪个用户位于 localhost TCP 连接的另一端?

    这是一个编程问题 但它是 Linux Unix 特定的 如果我从本地主机获得 TCP 连接 是否有一种简单的方法可以告诉哪个用户在 C 程序内建立了连接而无需 shell 我知道这对于 Unix 域套接字来说并不太难 我已经知道远程 IP
  • 如何删除树莓派的相机预览

    我在我的 raspberryPi 上安装了 SimpleCv 并安装了用于使用相机板的驱动程序 uv4l 驱动程序 现在我想使用它 当我在 simpleCV shell Camera 0 getImage save foo jpg 上键入时
  • jpackage linux 创建的桌面文件不足

    我刚刚开始使用 jpackage 它是一个非常棒的工具 只要迈出一步 我的肩上的工作就减轻了很多 我对看起来硬编码且无法定制的东西越感到惊讶 JPackage 自动生成启动器 lib
  • Bash - 如何将参数传递给通过标准输入读取的脚本

    我正在尝试从标准输入执行脚本并将参数传递给它 有办法做到吗 假设我有以下内容 cat script sh bash 我如何将参数传递给脚本 我不想这样做 bash script sh arguments 也不是这个 script sh ar
  • 将所有脚本参数复制到另一个变量

    我需要复制所有脚本参数并将它们传递给另一个脚本 我尝试这样做 args printargs sh args echo printargs sh args 但在这种情况下 如果我使用包含空格的参数调用我的父脚本 例如 script sh ar
  • 我在哪里可以学习如何使 C++ 程序与操作系统 (Linux) 交互

    我是一个 C 初学者 我想创建与操作系统交互的小程序 使用 Kubuntu Linux 到目前为止 我还没有找到任何教程或手册来让 C 与操作系统交互 在 PHP 中 我可以使用命令 exec 或反引号运算符来启动通常在控制台中执行的命令
  • 如何使用libaudit?

    我试图了解如何使用 libaudit 我想接收有关使用 C C 的用户操作的事件 我不明白如何设置规则 以及如何获取有关用户操作的信息 例如 我想获取用户创建目录时的信息 int audit fd audit open struct aud
  • 变量作为 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
  • 如何使用 bash 脚本关闭所有终端,在每个终端中有效地按 Ctrl+Shift+Q

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

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com

随机推荐

  • SQLAlchemy with_for_update 行锁定不起作用?

    有一个学生 他的type属性为 4 最小值为type属性可以是1 在 postgres 中 在会话 1 中 我独占锁定并更新学生表中的一行 BEGIN LOCK TABLE students IN ROW EXCLUSIVE MODE SE
  • 直接在SQLite中计算两点之间的距离

    在我的 web MySQL 应用程序中 我有类似的方法来获取两点之间的距离 6371 acos cos radians 19 83996 cos radians lat cos radians 43 94910 radians lng si
  • 如何从 preg_split 结果中删除空数组? [复制]

    这个问题在这里已经有答案了 举个例子 我有大量的正则表达式 就像我写的一样简单 php gt var dump preg split reg s reg a zA Z array 3 0 gt string 0 1 gt string 13
  • 裤子包括 OS X 特定的 Python 轮子

    TLDR Pants 获取 OS X 特定的轮子 因为我正在 Mac 上开发 我怎样才能避免这种情况 或者指定我将部署到 Ubuntu 完整故事 尝试用 Pants 打包 Python 应用程序 到目前为止进展顺利 但遇到了一个困扰我一段时
  • 以编程方式设置或查看“高级 Wifi”设置

    我需要一种以编程方式打开 高级 wifi 设置的方法 以让用户更改某些设置 或者最好以编程方式更改这些高级无线设置 到目前为止 我只能通过 startActivity new Intent Settings ACTION WIFI SETT
  • 什么样的类型定义在本地环境中是合法的?

    在伊莎贝尔的NEWS文件 我发现 命令 typedef 现在可以在本地理论上下文中工作 无需 引入对参数或假设的依赖 这不是 可以在 Isabelle Pure HOL 中实现 请注意 逻辑环境可能 包含本地 typedef 的多种解释 具
  • Kafka Connect 接收器任务忽略容差限制

    我尝试忽略接收器连接器中的错误消息errors tolerance all选项 完整的连接器配置 name crm data sink pandora config connector class io confluent connect
  • Linux下C语言读写串口

    我试图使用 FTDI 通过 USB 端口发送 接收数据 所以我需要使用 C C 处理串行通信 我正在尝试Linux 乌班图 基本上 我连接到一个正在侦听传入命令的设备 我需要发送这些命令并读取设备的响应 命令和响应都是ASCII 字符 使用
  • C++ 中的设置/获取方法

    Java 程序员和 API 似乎更喜欢显式的 set get 方法 然而我的印象是 C 社区不赞成这种做法 如果是这样 是否有特殊原因 除了更多行代码之外 为什么会这样 另一方面 为什么Java社区选择使用方法而不是直接访问 谢谢 理想情况
  • 使用 Rust 稳定通道和夜间通道并行编译代码有多困难?

    Cargo 创建的默认文件树允许并行编译发布和调试版本 因为它们位于自己的目录中 target release and target debug 分别 允许并行编译有多困难stable nightly 编译器 例如使用目录 target d
  • 在 R 中合并两个列表

    我有两个清单 first list a 1 b 2 c 3 second list a 2 b 3 c 4 我想合并这两个列表 所以最终产品是 a 1 1 2 b 1 2 3 c 1 3 4 有一个简单的函数可以做到这一点吗 如果列表始终具
  • 更新部分主键Entity Framework 4.0

    我有一个带有复合主键的表 3 列 UTP ID ITEMId UTS ID CategoryID USS ID SubCategoryID 例如 当我尝试使用 EF 4 更改 SubCategory 时 出现以下错误 utl USS ID
  • 写入帧缓冲区

    我使用的是带有内置图形加速器 GMA HD 的 i5 内核 在 RHEL 6 0 操作系统上运行 我需要测试显卡驱动程序的图形加速能力 我发现我的电脑上是i915 我使用以下代码 我从互联网上获得并进行了一些修改 来写入帧缓冲区 inclu
  • 多行搜索替换为 Perl

    我知道这类问题以前已经被问过很多次了 我再次来到这里的原因是我觉得我错过了一些简单而基本的东西 是否有可能使这种搜索替换例程变得更好 例如 无需打开同一文件两次 也欢迎与速度相关的建议 请注意 这适用于多行匹配并替换多行字符串 bin pe
  • 如何将 2D Eigen::Tensor 更改为 Eigen::Matrix

    看起来很简单 我本以为某种类型的转换是可能的 但我似乎找不到任何相关文档 虽然我在应用程序中找到了避免使用 Eigen Matrix 类的方法 但 TensorFlow 仅适用于 Eigen Tensor 而我使用的另一个库仅具有直接使用
  • Python将字符串拆分为多个字符串[重复]

    这个问题在这里已经有答案了 可能的重复 在Python中将字符串分割成列表 我有一个带有很多部分字符串的字符串 gt gt gt s str1 str2 str3 str4 现在我有一个类似以下的功能 gt gt gt def f args
  • 迁移到 rbenv 会破坏乘客 (nginx)

    我在生产服务器上从 RVM 迁移到 rbenv 我使用 rvm implode 卸载了 rvm 并安装了 rbenv ruby 1 9 2 rails passenger 和 nginx module 除了按如下方式更改 Passenger
  • 查找 numpy 数组中最接近的值

    我如何找到最接近的值在 numpy 数组中 例子 np find nearest array value import numpy as np def find nearest array value array np asarray ar
  • 如何缩短 ggplot 中的 x 轴标签文本?

    我正在 ggplot 中绘制一个图 其中 x 轴标签包含不同蛋白质的名称 但我遇到了麻烦 因为其中一些名称太长 并且标签变得太大 以至于很难看到图 有什么方法可以减少 x 轴标签中的字符数 而不是 打印 更大的图表 这是一个显示我的问题的示
  • Bash - 计算输入数字的平均值

    需要有关 Linux Bash 脚本的帮助 本质上 运行脚本时会要求用户提供三组数字 然后计算输入的数字并得出平均值 bin bash echo Enter a number read a while a do echo Enter a s