Bash 错误:需要整数表达式

2024-03-09

在下面的部分中,您将看到我尝试在 UNIX 计算机上运行的 shell 脚本以及脚本。

当我运行这个程序时,它给出了预期的输出,但它也给出了记录中显示的错误。可能是什么问题以及如何解决它?

首先,脚本:

#!/usr/bin/bash

while read A B C D E F
do
    E=`echo $E | cut -f 1 -d "%"`
    if test $# -eq 2
    then
        I=`echo $2`
    else
        I=90
    fi
    if test $E -ge $I
    then
        echo $F
    fi
done

以及运行它的记录:

$ df -k | ./filter.sh -c 50
./filter.sh: line 12: test: capacity: integer expression expected
/etc/svc/volatile
/var/run
/home/ug
/home/pg
/home/staff/t
/packages/turnin
$ _

在这行之前:

if test $E -ge $I

暂时放置该行:

echo "[$E]"

你会发现一些非常非数字的东西,那是因为输出df -k看起来像这样:

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdb1      954316620 212723892 693109608  24% /
udev               10240         0     10240   0% /dev
: :

违规行是第一行,该行将有第五个字段Use%转换成Use,这绝对是not一个整数。

一个快速解决方案可能是将您的用法更改为:

df -k | sed -n '2,$p' | ./filter -c 50

or:

df -k | tail -n+2 | ./filter -c 50

这些额外过滤器中的任何一个(sed or tail) 将仅从第 2 行开始打印。


如果您愿意根本不需要特殊脚本,您可能可以使用以下内容:

df -k | awk -vlimit=40 '$5+0>=limit&&NR>1{print $5" "$6}'

它的工作方式是仅在满足以下条件的线路上运行:

  • 第五个字段,转换为数字,至少等于传入的限制-v; and
  • 记录数(行)为两条或更多。

然后它只是输出那些匹配行的相关信息。

这个特定的例子输出文件系统and使用情况(如百分比42%)但是,如果您只想按照脚本使用文件系统,只需更改print输出$6在其自己的:{print $6}.

或者,如果您do百分比但没有%,您可以使用我在条件中使用的相同方法:{print $5+0" "$6}.

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

Bash 错误:需要整数表达式 的相关文章

  • 无论 Rosetta 如何,获取 M1 Mac 的真实架构

    我需要检索 Mac 的真实架构 无论该进程是否通过 Rosetta 运行 现在在 Node js 中 process arch回报x64并在外壳中 uname m回报x86 64 感谢 Ouroborus 这张纸条 https develo
  • 使用 find 和 xargs 交互删除文件

    我正在尝试将一些文件从 find 命令传输到交互式删除命令 以便我可以仔细检查要删除的文件 但我遇到了一些麻烦 find name print0 xargs 0 rm i 我认为上面的方法可行 但我只得到一串 rm remove regul
  • PHP 中是否有相当于 subprocess 的东西?

    在 Java 和 Python 中 你有ProcessBuilder or 子流程 https docs python org 2 library subprocess html可让您使用未转义字符串轻松启动进程的模块 例如 ls some
  • 递归触摸修复计算机之间的同步[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 由于我的错误 我正在寻找一种从命令行触摸目录 和子目录 中的每个文件的方法 我的同步存储库在我的开发机器上有点不同步 我现在已经通过一些令人不快的巫术
  • Linux find 命令权限被拒绝

    我想过滤掉不必要的信息 权限被拒绝 这些是命令 的输出find type f name sources list find run lxcfs Permission denied find run sudo Permission denie
  • 拼写检查 shell 脚本

    我有一些疑问 我对一个应该是简单拼写检查器的脚本有疑问 它的目的是 当发现错误的单词时 它会提示用户输入该单词的正确拼写 如果用户输入正确的拼写 则会显示更正的单词以及错误的单词 下面 在读完所有单词之后 但是 如果用户只是按 Enter
  • Linux shell 根据第二列对文件进行排序?

    我有一个这样的文件 FirstName FamilyName Address PhoneNumber 如何按 FamilyName 排序 如果这是 UNIX sort k 2 file txt 您可以使用多个 k用于对多列进行排序的标志 例
  • Jenkins 文本参数 - 特殊字符乱码(不需要的变量替换)

    我在 Jenkins Linux 下 有一份工作构建参数 https wiki jenkins ci org display JENKINS Parameterized Build类型为 文本 我使用参数来形成在构建过程中使用的文件的内容
  • sed 替换为多行变量[重复]

    这个问题在这里已经有答案了 我正在尝试用跨多行的文本替换单词 我知道我可以简单地使用换行符 n 来解决这个问题 但我想保持字符串 干净 不包含任何不需要的格式 下面的例子显然是行不通的 read r d TEST lt
  • 如何在 bash 脚本中使用并行编程/多线程?

    这是我的脚本 bin bash script to loop through directories to merge fastq files sourcedir path to source destdir path to dest fo
  • 在Java中执行.lnk文件

    我需要在java中执行 lnk文件 指向exe文件的lnk文件 我能怎么做 在 VB net 中我做 Process Start path 它有效 谢谢你的帮助 Use a 流程构建器 http download oracle com ja
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • Cron 不会导入 pandas 模块来执行 python 脚本。 ```导入错误:没有名为 pandas 的模块```

    我使用的是xubuntu 18 01 我有一个 python 程序 可以抓取天气数据并将文件保存为 csv 运行命令完美运行weatherdata在我授予它许可后 在终端中使用chmod x weatherdata 我希望使用 cron 每
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 使用 sed 查找并替换包含非转义字符的变量

    我可以使用它来查找 fly 的所有实例 并将其替换为文件中的 insect sed i s fly insect g animals txt 如何找到 BASH 变量并将其替换为另一个 BASH 变量 例如 name echo fly ca
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 将以反斜杠结尾的行与下一行 awk 连接起来(来自著名的 awk 单行解释)

    这个练习来自于Peteris Krumins 的博客文章解释了 AWK 的俏皮话 http www catonmat net blog awk one liners explained part two 本质上是这条线 awk sub ge
  • 使用 shell=True 将 PATH 设置为 bitbake 的“source”在 Python 中没有效果

    下面是shell脚本中的代码 source proj common tools repo etc profile d repo sh repo project init branch repo project sync source pok
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 将 JSON 导出到环境变量

    如果我有这样的 JSON hello1 world1 testk testv 我想将每个键值对导出为环境变量 如何通过 shell 脚本来做到这一点 例如 当我在终端上写时 echo hello1 world1应该打印其他键值对吗 注意 上

随机推荐

  • QT:将我的域对象基于 QObject 是一个好主意吗?

    我对于将 QT 框架与 C 结合使用相当陌生 我想知道 将我的域类基于 QObject 是一个好主意吗 或者我应该只对层次结构中较高的类执行此操作 更接近用户界面级别 QT文档对此并不清楚 摘自QT文档 元对象系统是 C 的扩展 使该语言更
  • 在 iOS 中 - 如何使 UILabel 适合其文本而不改变其位置?

    我正在打电话sizeToFit on a UILabel其中有右对齐的文本 它缩小了高度和宽度UILabel并将文本调整到左上角UILabel 现在 的位置UILabel是不正确的 我怎样才能使UILabel留在原来的位置 右对齐 还是移动
  • 如何使用 mod_rewrite/htaccess 通过锚点检测并重定向 URL?

    我见过很多相反的例子 但我希望从锚点 哈希 URL 转到非锚点 URL 如下所示 From http old swfaddress site com page name To http new html site com page name
  • 删除laravel中的特定迁移

    根据 laravel 文档 要回滚最新的迁移操作 您可以使用 rollback 命令 此命令回滚最后 批次 的迁移 其中可能包括多个迁移文件 php artisan migrate rollback 您可以通过向回滚命令提供步骤选项来回滚有
  • 无法使用 Java 1.8 在 JBoss 5.1 中编译 JSP 文件

    无法使用 Java 1 8 在 JBoss 5 1 中编译 JSP 文件 能够编译常规Java文件 甚至能够完成没有JSP的Spring项目 如果我们保留这些 JSP 文件的编译类文件 它就可以正常工作 以下是我尝试运行 JSP 文件时遇到
  • 如何使用 React.js 循环 JSX 中的对象

    所以我有一个 React js 组件 我想循环遍历我导入的对象以向其添加 HTML 选项 这是我尝试过的 既丑陋又不起作用 import React from react import AccountTypes from data Acco
  • 使用 Django RequestFactory 而不是表单数据的 POST 文档

    我想构建一个测试中间件的请求 但我不希望 POST 请求始终假设我正在发送表单数据 有没有办法设置request body根据生成的请求django test RequestFactory 即 我想做类似的事情 from django te
  • 自动将 Spring @RequestMapping 注释记录到一个位置?

    Javadoc 非常适合扫描所有源文件并创建 HTML 页面来查看它 我想知道是否有一个类似的工具可以遍历所有 Spring 控制器并收集所有用 RequestMapping 注释的方法并生成一个列出它们的 HTML 页面 有点像开发人员的
  • WKWebView LayoutConstraints 问题

    我创建了一个简单的网络视图应用程序 但有一个小问题我无法修复 它加载第一页没有问题 当我单击第一个输入时 程序崩溃 错误代码如下 2017 10 28 23 50 54 289690 0400 BFI Schools 68425 38856
  • SASL 握手期间出现意外的 METADATA 类型的 Kafka 请求

    我正在尝试使用 SASL Plain 将 Kafka Java 客户端连接到 Kafka 代理 但是当我尝试从生产者发送消息时 Kafka 服务器记录以下错误 2020 04 30 14 48 14 955 INFO SocketServe
  • 使用POSTMAN获取授权码-OAuth2.0

    我正在使用POSTMAN来测试OAuth2 0授权码流程对于 MSGraph 以下是相同的详细信息 验证码网址 https login microsoftonline com tenant id oauth2 authorize https
  • Tomcat环境中如何保存名称-值对?

    我们有一个 servlet 它需要某些变量 如密码 加密盐等 而不是永久保存在文件系统上 这就是我们目前所做的 总结 在初始化期间 Perl 脚本将 ReadMode 设置为 2 以屏蔽 stdout echo 提示用户输入变量 过滤已知文
  • 检查元素上是否有事件侦听器。没有 jQuery [重复]

    这个问题在这里已经有答案了 如果我像下面的代码一样使用内联函数 如何检查元素上是否有事件侦听器 因为我有一个函数可以调用该函数并添加事件侦听器 但它会导致重复的事件侦听器导致它触发函数两次 如果事件侦听器已经存在 我该如何检查它以便阻止它添
  • Rails 3.1 中的无表模型

    好像this http railscasts com episodes 193 tableless model该方法在 Rails 3 1 中不再适用 那么 有人有可行的解决方案吗 其实我已经找到这个了gist https gist git
  • 如何在编辑表单中预先填充collection_check_boxes?

    GitHub 仓库 https github com Yorkshireman mywordlist https github com Yorkshireman mywordlist 我用谷歌搜索了一下这个 我确信有一种方法 可能需要在 h
  • Python 字典中的最后一个键

    我很难弄清楚 Python 字典中最后一个键的语法是什么 我知道对于 Python 列表 人们可能会这样说来表示最后一个 list 1 我还知道可以获取字典的键列表 如下所示 dict keys 但是 当我尝试使用以下逻辑代码时 它不起作用
  • 在 ZF2 中发送带有附件的电子邮件

    如何在 zf2 中发送包含 text plain text html 和附件的电子邮件 我使用此代码通过 smtp 发送电子邮件 files this gt params gt fromFiles smtp new Zend Mail Tr
  • 如何使用 pyPdf 合并两个横向 pdf 页面

    我在使用 pyPdf 合并两个 PDF 文件时遇到问题 当我运行以下代码时 水印 第 1 页 看起来不错 但第 2 页已顺时针旋转 90 度 有什么想法吗 from pyPdf import PdfFileWriter PdfFileRea
  • 语法错误:无法分配给运算符

    def RandomString length distribution string for t in distribution t 1 length t 1 string return shuffle string 这会返回标题中描述的
  • Bash 错误:需要整数表达式

    在下面的部分中 您将看到我尝试在 UNIX 计算机上运行的 shell 脚本以及脚本 当我运行这个程序时 它给出了预期的输出 但它也给出了记录中显示的错误 可能是什么问题以及如何解决它 首先 脚本 usr bin bash while re