if 语句的比较在 bash 中与 test 命令没有按预期工作[重复]

2023-12-07

我是一名新手,正在努力让我的第一个“如果那么”语句发挥作用。我编造了一个完全胡说八道的情况来用作试验,但它不起作用。我已经阅读了大约一半关于如何格式化 if then 的描述,但我不知道我可能做错了什么。

我的脚本:

#!/bin/bash

if [ 10 > $1 ]
then
    printf "Too big\n"
else
    printf "Too small\n"
fi

我想我可以提供任何数字作为命令行的第一个参数,脚本会告诉我一个适当的答案。没有喜悦。我在命令行中得到的只是:

Johns-iMac:~ johnyoung$ ./test3 5
Too big
Johns-iMac:~ johnyoung$ ./test3 50
Too big

对于我一直在做的实践,这个脚本最终被称为“test3”

有任何机构可以帮助我吗?谢谢负载。


The > in if [ 10 > $1 ]在测试命令中被解释为输出重定向[。您可以使用内置的 bash[[ ]]到数值比较。

#!/bin/bash

if [[ 10 > $1 ]]
    then
    printf "Too big\n"
    else
    printf "Too small\n"
fi

您还可以使用-gt(比...更棒),-lt(少于),-ge(大于或等于)等数值比较:

if [[ 10 -gt $1 ]] 
...
...
fi

or

if (( 10 > $1 ))
...
...
fi

一般来说,内置关键字[[ ]]应该优先于bash因为它不进行全局扩展或分词,并且与测试命令相比更不容易出错[.

但缺点是[[ ]]并非所有 shell 都支持 test 命令[受到所有 shell 的支持。

另请阅读:测试、[ 和 [[ 之间有什么区别?进行详细讨论。

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

if 语句的比较在 bash 中与 test 命令没有按预期工作[重复] 的相关文章

  • 我应该使用 AWK 或 SED 删除 CSV 文件中引号之间的逗号吗? (重击)

    我有一堆日常打印机登录CSV格式 我正在编写一个脚本来跟踪使用了多少纸张并将信息保存到数据库中 但我遇到了一个小问题 本质上 日志中的一些文档名称中包含逗号 全部用双引号引起来 并且由于它采用逗号分隔格式 所以我的代码搞乱了并将所有内容推到
  • 使用 BHO 扩展 Windows 资源管理器

    我正在尝试使用 C 中的自定义面板来扩展 Windows 资源管理器 不是谎言 它应该如下所示 这是我发现的一个类似的问题 在 C 中 类似问题 https stackoverflow com questions 22101829 ishe
  • Bash 脚本错误 [重复]

    这个问题在这里已经有答案了 我想知道下面的脚本有什么错误 我收到错误为 command not foundh line 1 command not foundh line 2 其连续的 我试过添加 但现在工作请告诉我该怎么做 bin bas
  • 使用数组参数创建 bash 选择菜单

    我有一个函数叫做createmenu 该函数将接受一个数组作为第一个参数 第二个参数是数组的大小 然后我想使用该数组的元素创建一个选择菜单 这是我到目前为止所拥有的 使用给定数组创建菜单 createmenu echo 1 echo Siz
  • 有没有办法以编程方式下载网页的部分内容,而不是整个 HTML 正文?

    我们只需要 nytimes com technology 上的 HTML 文档中的特定元素 该页面包含许多文章 但我们只想要文章的标题 该标题位于 如果我们使用 wget cURL 或任何其他工具或某些包 例如Python 中的请求 htt
  • 如何识别 CVS 中存在哪些分支?

    我有一个遗留的 CVS 存储库 应将其迁移到 Perforce 对于每个模块 我需要确定该模块中存在哪些分支 我只想要一个分支名称列表 没有标签 出于脚本编写的原因 它必须是命令行工具 例如 假设有一个 cvs list branches
  • bash 脚本中的变量值不会改变[重复]

    这个问题在这里已经有答案了 运行以下代码 a one echo a a two echo a a three echo a gt a 结果是 one one 以及创建的文件名称为 one 内容为 one 为什么变量没有更改为two在第 2
  • 仅为我自己禁用和重新启用地址空间布局随机化

    我想在我的系统 Ubuntu Gnu Linux 2 6 32 41 server 上禁用地址空间布局随机化 ASLR 但是 如果我使用 sysctl w kernel randomize va space 0 我认为这一更改将影响系统上的
  • k8s CronJob 在 pod 列表上循环

    我想在特定命名空间中的 pod 上运行循环 但诀窍是在 cronJob 中执行此操作 是否可以内联 kubectl get pods n foo 这里的技巧是在你获得 Pod 列表后 我需要循环并在 15 秒的超时时间内将每个 Pod 删除
  • 如何在 PHP 中执行 shell 脚本?

    我有一个脚本 var www myscript sh它创建文件夹并运行命令svn update对于我的项目 我需要通过在浏览器中的 PHP 文件中调用它来执行此脚本 即本地主机 test php 我尝试使用函数shell exec and
  • 如何编写bash脚本来设置全局环境变量?

    最近写了一个设置环境变量的脚本 看一下 bin bash echo Pass a path read path echo path defaultPath home whoami Desktop if n path then export
  • 为什么 ls -l 中的“总计”加起来不等于列出的总文件大小? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么是total在输出中ls l打印为64并不是26078列出的所有文件的总数是多少 ls l test ls total 64 rw
  • Bash 退出前运行脚本

    我想在每次关闭 Bash 会话时运行一个脚本 我使用 XFCE 和 Terminal 0 4 5 Xfce 终端仿真器 我想每次关闭终端中的选项卡 包括最后一个选项卡 时运行一个脚本 当我关闭终端时 类似 bashrc 但在每个会话结束时运
  • 我收到错误“array.sh:3:array.sh:语法错误:”(“意外”

    我编写了以下代码 bin bash Simple array array 1 2 3 4 5 echo array 我收到错误 array sh 3 array sh 语法错误 意外 根据我从 Google 了解到的情况 这可能是因为 Ub
  • 如何设置文件的LastWriteTime属性?

    我想更改使用此脚本生成的文件的创建日期 clientname Read Host Enter the client name path Read Host Enter the complete path of bak files time
  • 如何通过双击使该 file.sh 可执行?

    首先我用的是Mac 接下来 我需要执行这个 file sh 我们将调用它 每次我需要执行它时 我都必须打开终端并输入 cd Users Jacob Documents folderWithFileInIt bash file sh 这没关系
  • 使用 SED 将单词的第一个字母大写

    如何将单词的第一个字母替换为大写字母 例如 Trouble me Gold rush brides into Trouble Me Gold Rush Brides 这一行应该做到这一点 sed e s b u 1 g
  • 如何让批处理文件等待另一个批处理文件完成执行?

    如何让一个批处理文件等待另一个批处理文件完成 例如 我有 echo hi gt r txt echo some piece of code gt gt r txt start ar bat echo some piece of code g
  • 使用 awk 处理多个文件

    我必须使用 awk 处理大量 txt 文件 每个文件 1600 万行 我必须阅读例如十个文件 File 1 en sample 1 200 en n sample 2 10 en sample 3 10 File 2 en sample 1
  • 从 Jenkins Pipeline 捕获 shell 脚本输出

    我正在尝试提取 git 分支并在 Jenkinsfile 中提交信息 如下所示 def commit sh returnStdout true script git rev parse HEAD trim def branch sh ret

随机推荐

  • 追查Spring“不符合自动代理资格”的原因

    当你开始摆弄 Spring 的自动代理功能时 你经常会遇到这种行为 如下所示 实现的类 BeanPostProcessor接口有 特殊 所以他们受到待遇 因容器而异 全部 BeanPostProcessors 及其直接 引用的bean将被实
  • spring security:为什么我们无法访问 @PreAuthorize 中的 Hibernate 实体参数?

    我正在应用以下接口方法 PreAuthorize PreAuthorize doSomething user id void something User user List
  • Rust 测试甚至无法运行

    我正在编写一个项目来学习如何使用 Rust 我正在调用我的项目未来金融实验室 编写一些基本功能并验证可以构建应用程序后 我想包括一些测试 位于aggregates mod rs 根据文档 测试与实际代码位于同一文件中 尽管遵循了 但我无法运
  • 如何在 RDP 期间访问远程 USB 智能卡

    我的设置 RDP 客户端 Win7 RDP gt 远程带智能卡的服务器 Win2k8R2 我发现无数的答案表明这是不可能的 很多答案表明 RDP 是为了安全性而设计的 智能卡被锁定 在使用远程桌面连接 RDP 进行远程连接时不允许看到设备
  • 我可以设置从 jar 文件运行的 Java 最大堆大小吗?

    我正在启动一个 java jar 文件 该文件通常需要超过默认的 64MB 最大堆大小 不过 256MB 的堆大小对于这个应用程序来说已经足够了 无论如何 是否要指定 也许在清单中 在启动 jar 时始终使用 256MB 最大堆大小 如果需
  • 如何删除文件夹中除只读文件之外的所有文件?

    我想删除文件夹中除只读文件之外的所有文件和子文件夹 如何使用 powershell 来做到这一点 作为参考 这在 V3 中更容易一些 Get ChildItem Attributes r Remove Item Recurse Force
  • python 中字典列表的奇怪行为

    这是对列表执行操作的简单代码 gt gt gt a 0 5 gt gt gt a 0 0 0 0 0 gt gt gt a 0 5 gt gt gt a 5 0 0 0 0 gt gt gt 目前来看 没有什么异常 现在 我尝试对字典列表而
  • java.lang.ClassNotFoundException:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

    我在我的项目中使用 spring 集成 当我在 jetty 容器中部署应用程序时 出现以下异常 org springframework beans factory BeanCreationException Error creating b
  • jquery中传递变量

    将 var full 传递给函数 b 的最佳方法是什么 我不想使用全局变量 退货是唯一的选择 p p p class aaa p p p
  • 如何使android中的锚标记可点击

    这是我的代码 TextView aboutL1 TextView findViewById R id aboutL2 aboutL1 setText Html fromHtml This app is open source br The
  • 流改造意外结束

    我有一个 Android 应用程序 它向 Flask 中的 REST API 发出 http 请求 我使用 Retrofit2 和 okhttp3 向带有 Raspbian Lite 的 Raspberry Pi 上托管的服务器发出请求 我
  • 从 JAX-RS servlet 动态创建图像

    是否可以创建 PNG 图像并将其作为 JAX RS 资源的一部分直接输出到浏览器 像这样的东西 Path img externalId Stateless Produces image png public class MyImgResou
  • Apache POI、Excel 2007+ XML 和 OSGI

    对于一个项目 我尝试使用 Apache POI 来获取 Excel XML 功能以与 OSGI 配合使用 我尝试过 POI ServiceMix 捆绑包 但缺少 ooxml schemas jar 将 jar 添加到捆绑包并将其包含在清单中
  • 如何使用CSS动画创建如图所示的立方体开口?

    在我的项目中 当打开主页时 它应该运行 CSS 动画 以便立方体的面打开 动画完成后 脸部应该如图所示 我需要有一个结果就像第一次打开一样图片中 这是我的代码 sk folding cube margin 20px auto width 4
  • 如何避免使用 opencv 和 numpy 逐像素循环图像

    我逐个像素地循环浏览该图像 速度非常慢 我有 2 个图像 我正在比较切片和展平 因此每个元素都是一个名为 3 维 rgb 值e1 and e2 虽然它很慢 有没有一些方法使用opencv or numpy这可以加快速度吗 我在这里所做的是对
  • 维基数据内容协商

    我想知道为什么维基数据内容协商结果与文件中的多个实体有关 例如浏览器中的P2044 http www wikidata org entity P2044 nt 还给我关于 Q6452016 实体的三元组 http www wikidata
  • 我什么时候应该使用@android:id/?

    我找到了一些代码示例 android id xyz属性集而不是 id xyz 何时以及为什么需要使用 Android id 而不是用户的 id 加号表示资源是新的 必须创建它并添加到资源中R java file 省略加号会引用已存在的资源
  • EvtArchiveExportedLog 失败并显示 ERROR_DIRECTORY

    我需要在 Windows Server 2008 R2 上将一些事件从 Windows 事件日志导出到 XML 为了实现这一目标 我使用 EvtExportLog 将这些事件导出到文件 然后尝试使用 EvtArchiveExportedLo
  • 在 Swift 中从单个字符串转换为 ASCII 值的最简单方法是什么?

    我只想在 Swift 中获取单个字符字符串的 ASCII 值 这就是我目前正在做的 var singleChar a println singleChar unicodeScalars singleChar unicodeScalars s
  • if 语句的比较在 bash 中与 test 命令没有按预期工作[重复]

    这个问题在这里已经有答案了 我是一名新手 正在努力让我的第一个 如果那么 语句发挥作用 我编造了一个完全胡说八道的情况来用作试验 但它不起作用 我已经阅读了大约一半关于如何格式化 if then 的描述 但我不知道我可能做错了什么 我的脚本