bash“如果[假];”返回 true 而不是 false —— 为什么?

2023-12-15

为什么会输出如下True?

#!/bin/sh

if [ false ]; then
    echo "True"
else
    echo "False"
fi

这将始终输出True即使情况似乎表明情况并非如此。如果我去掉括号[]然后它起作用了,但我不明白为什么。


您正在运行[ (aka test) 带有参数“false”的命令,不运行该命令false。由于“false”是一个非空字符串,因此test命令总是成功。要实际运行该命令,请删除[命令。

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

bash“如果[假];”返回 true 而不是 false —— 为什么? 的相关文章

  • 如何在 Linux/Unix 上根据文件类型添加文件扩展名?

    这是一个关于 Unix shell 脚本 任何 shell 的问题 但任何其他 标准 脚本语言解决方案也将受到赞赏 我有一个充满文件的目录 其中文件名是这样的哈希值 fd73d0cf8ee68073dce270cf7e770b97 fec8
  • bash后台进程修改全局变量

    在我的 Bash 脚本中 我有一个全局变量foo设置为某个值和函数过程back func这是在后台运行的 我希望后台进程能够访问foo并修改其值 以便主进程可以看到变化 我的脚本的结构如下 bin bash foo 0 function b
  • 如何对“s3cmd ls”的输出进行排序

    Amazon s3cmd ls 的输出如下 2010 02 20 21 01 1458414588 s3 file1 tgz 00 br 2010 02 20 21 10 1458414527 s3 file1 tgz 01 br 2010
  • 相当于 Python 中的 set -o pipelinefail 吗?

    我有一些 Python 脚本 每个脚本都大量使用排序 uniq ing 计数 gzipping 和gunzipping 以及 awking 第一次运行我使用的代码subprocess call 是的 我知道安全风险 这就是为什么我说这是第一
  • 在Unix下,判断执行该程序的用户是否是root?

    我正在编写一个 rake 脚本 并希望检测 如果可能的话 使用 Ruby 而不是 bash 执行 rake 脚本的用户是否具有 root 权限 如果它不是 root 那么我想终止脚本 Use uid http www ruby doc or
  • bash 脚本中的 JQ 参数错误

    我的 JQ 查询有问题 max script lt return integer jq r notifiestext map select read false temp notif jq arg foo max map select id
  • 为什么 **sort** 不在每台机器上进行相同的排序?

    使用相同的sort具有相同输入的命令在不同的机器上产生不同的结果 我该如何解决这个问题 The man page http developer apple com documentation Darwin Reference ManPage
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • shell脚本中的“##”是什么意思? [复制]

    这个问题在这里已经有答案了 在编写脚本时 我遇到了这个命令 f file 我很想知道 什么是 这行是什么意思 In bash 它删除了前缀模式 在这里 它基本上为您提供了最后一个路径分隔符之后的所有内容 通过贪婪地删除前缀 后面跟随任意数量
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • unix 下日期字段排序

    我有包含数十万条记录的文本文件 其中一个字段是日期字段 有没有办法根据日期字段对文件进行排序 09 APR 12 04 08 43 632279000 AM 19 MAR 12 03 53 38 189606000 PM 19 MAR 12
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 在 bash 中添加(收集)退出代码

    我需要依赖于脚本中的几个单独的执行 并且不想将它们全部捆绑在一个丑陋的 if 语句中 我想使用退出代码 每次执行并添加它 最后 如果这个值超过阈值 我想执行一个命令 伪代码 ALLOWEDERROR 5 run something RESU
  • 简单的布尔表达式测试

    user compiling user for byte code formula 0 P Q P Q P user compiled 2 lines read 768 bytes written 37208 ms yes formula
  • 条件运算符“?:”与类型转换运算符一起使用时出现编译器错误

    以下代码是最简单的形式 struct X operator char const return a int main X obj p obj char a p ok char c true p z 这段代码 http www ideone
  • bash 子 shell 中出现陷阱“kill 0”的分段错误

    我正在尝试编写一个并行构建多个 Dockerfile 的小脚本 但是如果我想取消该脚本 我也想杀死子进程 这样做的结果是segmentation fault 不知道为什么 为了澄清我正在杀死脚本 C trap kill 0 SIGINT S

随机推荐

  • 移动设备上的 OutOfMemoryException

    我正在开发一个使用移动设备拍摄照片并使用网络服务发送照片的应用程序 但在我拍了 4 张照片后 我得到了OutOfMemoryException在下面的代码中 我尝试打电话GC Collect 但这也没有帮助 也许这里有人可以给我如何处理这个
  • 计算某个值在列中出现的次数(excel)

    好的 所以我有一个 Excel 文件 其中有一列可能包含像这样的重复值 采购订单编号 采购订单数量P100293490 4P100293490P100293490P100293490P100293492 2P100293492P100293
  • 调试窗口服务

    我想调试窗口服务 我应该在 main 中编写什么才能在窗口服务中启用调试 我正在使用 C 开发窗口服务 if DEBUG System Diagnostics Debugger Break this OnStart null System
  • Bot Framework 4 带有 ChannelData null 引用和 Facebook Messenger 的新活动

    我无法在 Facebook Messenger 中显示与此相关的任何按钮或图像 这太令人沮丧了 似乎没有任何作用 说明 样品等 似乎已经过时了 这是我的代码 在其他渠道中 我为此使用 SuggestedActions 我基本上是在问 是 或
  • MVC + RegisterClientScriptInclude / RegisterClientScriptBlock

    是否有与 Page ClientScripts RegisterClientScriptInclude 和 Page ClientScripts RegisterClientScriptBlock 等效的 MVC 我希望创建部分视图 这些视
  • 如何使用 FileSystemObject 进行“复制和重命名”

    使用文件系统对象在 VB VBA 或者我猜是本机 VBA 调用 中 我怎样才能 复制文件夹 重命名文件夹 所以 像这样 mFSO CopyAndRename targetFolder copyDirectory copyFolderName
  • Haskell 中有自定义预处理器的示例吗?

    我走过了阴谋集团Distribution Simple 包知道PreProcessor数据类型可用于定义自定义预处理器 但提供的例子并不是那么有用 我不知道如何调用预处理器 目前 我只是在中定义我自己的预处理器Setup hs file 有
  • php 中给定月份的下个月和上个月[重复]

    这个问题在这里已经有答案了 可能的重复 从给定日期 php 获取下个月和上个月的最佳解决方案是什么 我正在用 php 开发一个作品 在这里 我想获取给定月份的下个月和上个月 例如 mth December 我想显示 12 月的下一个和上一个
  • Rust 中如何进行错误处理以及常见的陷阱有哪些?

    我注意到 Rust 没有例外 Rust 中如何进行错误处理以及常见的陷阱有哪些 有没有办法通过加注 接住 再加注和其他东西来控制流程 我发现这方面的信息不一致 Rust 通常通过两种方式解决错误 不可恢复的错误 一旦您panic 就是这样
  • 何时/如何 - Outlet -> didSet

    我想知道 插座上的 didSet 何时 如何实际触发 例如 IBOutlet weak var modifyButton UIButton didSet modifyButton layer cornerRadius 9 当类刚刚初始化时
  • R - 在 Shiny UI 层中对文件进行 source() 处理

    我正在尝试将我的 Shiny 应用程序分解成更小的文件 以便通过 git 与同事进行协作更加容易 这个问题帮助我弄清楚如何source 通过使用将文件添加到我的 server rsource local T 现在我正在尝试对我的 UI 层做
  • 为什么这个函数返回一个(拥有的)值?

    代码 从 Genie 如何将字符串作为字符串数组重复 N 次Genie 如何将字符串作为字符串数组重复 N 次 def repeatwithsep e string n int separator string string var ele
  • mpirun:无法识别的参数 mca

    我有一个 C 求解器 需要使用以下命令并行运行 nohup mpirun np 16 my exec gt log txt 该命令将运行my exec独立于我的节点上可用的 16 个处理器 这曾经非常有效 上周 HPC 部门执行了操作系统升
  • 使用 Bootstrap 3 定位多个设备

    我正在开发针对手机 平板电脑和台式机的网站 假设我有一个 div 元素 处理这些设备的好方法是什么 我应该有 3 个不同版本的代码 或者也许我只需将所有类包含在一个 div 中 如下所示 div class col xs 12 col sm
  • 在窗口加载时通过 URL 将值传递给 JS 函数

    my page http www dinomuhic com 2010 index php使用正文中的 onLoad 调用在页面开头加载 Showreel 如下所示 96 是 SQL 库中节目卷的 ID JS 函数 sndReq 是使用 J
  • 如何通过C程序打印扩展ASCII字符127到160?

    我正在尝试下面的代码来打印所有 ASCII 字符 但它不会打印 127 到 160 的任何内容 我知道它们是控制字符集或一些拉丁 西班牙语字符 如果从Windows复制粘贴相同的字符 则在unix中打印效果很好 为什么不通过 C 程序呢 i
  • Android Studio 卡在“Gradle:解析依赖项‘_debugCompile’”或“detachedConfiguration1”上

    我不知道我在项目中更改了什么 但在构建 gradle 脚本时突然无法通过这一步 仅使用 gradle assemble 构建它是没有问题的 编辑 之前的卡点是解决依赖项 detachedConfiguration1 在第一次尝试 debug
  • AES ECB iOS 加密

    我尝试使用 AES 算法和 ECB 选项来加密一些字符串 size t bufferSize dataLength kCCBlockSizeAES128 void buffer malloc bufferSize size t numByt
  • 无法使用连接字符串连接到本地 SQL Server DB,但 VS 可以

    我正在尝试使用连接字符串通过 Visual Studio 15 连接到本地 Sql Server 2012 数据库实例 虽然我已经能够通过 Visual Studio SQL Server 对象资源管理器连接到数据库并成功运行测试过程 但我
  • bash“如果[假];”返回 true 而不是 false —— 为什么?

    为什么会输出如下True bin sh if false then echo True else echo False fi 这将始终输出True即使情况似乎表明情况并非如此 如果我去掉括号 然后它起作用了 但我不明白为什么 您正在运行 a