Bash 中的布尔运算符( &&、-a、||、-o )

2024-01-29

两者有什么区别&&, ||, -a, and -oUnix 运算符?

这两种类型的使用有何限制?

难道仅仅是因为&& and ||在条件中使用标志时应该使用运算符吗?

As in:

[ "$1" = "yes" ] && [ -r $2.txt ]

versus:

[ "$1" = "yes" -a $2 -lt 3 ]

经验法则: Use -a and -o方括号内,&& and ||外部。

了解之间的区别很重要shell语法和语法[ command.

  • && and ||是 shell 操作员。它们用于组合两个命令的结果。由于它们是 shell 语法,因此具有特殊的语法意义,不能用作命令的参数。

  • [不是特殊的语法。它实际上是一个名为[,也称为test. Since [只是一个常规命令,它使用-a and -o为其and and or运营商。它不能使用&& and ||因为这些是命令看不到的 shell 语法。

可是等等! Bash 有一种更奇特的测试语法,形式为[[ ]]。如果您使用双方括号,您可以访问正则表达式和通配符等内容。您还可以使用 shell 运算符,例如&&, ||, <, and >自由地在括号内,因为,与[, 双括号形式is特殊的 shell 语法。 Bash 解析[[本身,所以你可以写类似的东西[[ $foo == 5 && $bar == 6 ]].

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

Bash 中的布尔运算符( &&、-a、||、-o ) 的相关文章

  • 在 OSX 和 GNU 中使用“find”删除带有数字的文件名

    我正在尝试搜索一个文件并删除名称中包含数字的类似文件 我的文件 txt from myfile 00 04 version txt myfile 00 txt find E iregex myfile 0 9 1 txt 删除 myfile
  • 如何在lua中获取shell脚本的返回码?

    我正在lua中执行一个脚本 os execute sh manager scripts update system sh f 我想获得脚本的输出 如果退出状态为 7 则返回 7 I tried local output os execute
  • 如何使用 bash 显示具有两个子文件夹的文件夹?

    我通过 Cygwin 使用 bash 我有一个大文件夹 a 有很多子文件夹 b 这些子文件夹各有一个或两个子文件夹 c 我想找到所有有两个子文件夹 c 的子文件夹 b 并输出它们 结构如下 a b1 c1 b2 c1 c2 b3 c1 c2
  • tar 和 zip 有什么区别? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 tar 和 zip 有什么区别 每个的用例是什么 tar其本身只是将文件捆绑在一起 结果称为tarball 尽管zip也应用压缩 通常你使用gzip随
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 将 < 或 > 运算符作为参数传递给函数?

    我的函数里面有一个if 像这样的声明 if passedValue lt staticValue 但我需要能够传递一个参数来指示 if 表达式是像上面那样还是 if passedValue gt staticValue 但我真的无法通过 l
  • Arduino 高低

    我有一个 Arduino 我想知道到底是什么HIGH and LOW意思是 就实际值而言 它们是否有符号ints unsigned ints unsigned char是 他们的价值观是什么 我猜HIGH and LOW可能是unsigne
  • 为什么总是./configure;制作;进行安装;作为 3 个单独的步骤?

    每次从源代码编译某些内容时 都会经历相同的 3 个步骤 configure make make install 我明白 将安装过程分为不同的步骤是有意义的 但我不明白 为什么这个星球上的每个编码员都必须一次又一次地编写相同的三个命令才能完成
  • SCP 权限被拒绝(公钥)。仅当在目录上使用 -r 标志时才在 EC2 上

    scp r Applications XAMPP htdocs keypairfile pem uploads ec2 user publicdns var www html 其中 uploads 是目录 返回权限被拒绝 公钥 Howeve
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 语法错误:for 循环变量不正确

    我正在尝试编写一个可以在后台调高收音机音量的脚本 bin sh for i 80 i lt 101 i do amixer cset numid 1 i sleep 60 done 但我有问题 alarmclock vol sh 3 ala
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 将文件从不同目录复制到公共目录

    我有很多目录 其中包含 c文件 我想复制全部 c使用 shell 脚本将不同目录中的文件复制到单个目录 find name c exec cp t tmp 启动当前目录中的所有项目 递归 获取名称结尾的项目 c 将这些项目复制到 tmp 如
  • 如何制作一个 bash 脚本来同时创建 40 个程序实例?

    我是新来的bash and Linux 我编写了一个程序 我想创建多个同时实例 现在 我通过打开 10 个新终端 然后运行该程序 10 次 我运行的命令是php home calculatedata php 使用 bash 脚本执行此操作的
  • shell脚本中的\r字符

    我在尝试执行 shell 脚本时收到以下错误 r command not found line 2 请提出同样的解决方案 以下是脚本中使用的初始行 bin sh if lt 1 then echo ERROR Environment arg
  • grep 两个分隔符之间的子字符串

    我有很多bash使用的脚本perl内的表达式grep为了提取两个分隔符之间的子字符串 例子 echo BeginMiddleEnd grep oP lt Begin End 问题是 当我将这些脚本移植到运行的平台时busybox 融合的 g
  • 如何通过 UNIX mailx 命令发送电子邮件?

    如何通过 UNIX 发送电子邮件mailx命令 一个例子 echo something mailx s subject email protected cdn cgi l email protection 发送附件 uuencode fil

随机推荐

  • 单独线程中的无限循环

    我有一些数据库优化例程需要定期执行 我目前正在使用 TTimer 但主 VCL 冻结并且非常 hacky 我想知道最好的方法是什么 以降低 cpu 消耗并执行这些例程 我认为将例程放在具有低线程优先级的单独线程中是最好的方法 有任何想法吗
  • Rabbitmq消息到达时间戳

    有没有办法从消费者那里获取消息放入队列时的时间戳 不是当它发布的时候 而是当它真正进入队列的时候 不 没有办法解决这个问题 除非 正如您自己所说 您为此编写了一个插件 AMQP 中没有任何内容规格 http www amqp org sit
  • Android 应用程序干净的架构:数据层应该有自己的模型类吗?

    开发 Android 应用程序并尝试遵循干净的架构准则时 最好的方法是什么 但不是非常严格 因为这对于较小的项目可能有点过分 就我而言 我不确定哪种方法是最好的 如果有最好的方法 关于 数据层数据层是否应该在其自己的模型类上操作 或者是否可
  • 对 foreach 中的数组中的项目进行分组和求和

    我正在循环访问两个存储过程的结果集 根据另一个存储过程中的字段获取一个存储过程中的结果 包含结果集的两个数组是 customers and subcustomers foreach customers as customer foreach
  • 如何在MVC3中的Html beginform中发送javascript var

    我正在尝试使用 html beginform 将 JS 变量发送到控制器操作 例如 using Html BeginForm Index Contrl1 new SPName myJSVarcomeshere FormMethod Post
  • 即使与 libole32 链接,外部库中也未定义 OLE 引用

    使用 MINGW 我尝试将我的 C 代码与执行一些 OLE 操作的静态 C 库链接 mingw32 gcc main o resources o o mbcom exe L Lib Iup liup liupole lole32 lcomc
  • ggplot2:从包含geom_histogram的绘图对象读取最大条形高度

    像这样上一张海报 https stackoverflow com questions 7611691 relative positioning of geom text in ggplot2 我也在用geom text在 gglot2 中注
  • 远程 emacs 客户端连接,但不在终端中创建新框架

    我以 TCP 模式配置并启动了 emacs 服务器 Added setq server host 10 16 184 33 and setq server use tcp t 到 emacs ran emacs daemon 在同一主机上
  • 在 Django 模板中调用 Python 函数

    在 django 模板内 我尝试对其中一个模板变量调用 split 函数 然后获取最后一个元素 所以我做了如下操作 newsletter NewsletterPath split 1 不幸的是 它不喜欢分裂 有些人可能建议我在视图中进行拆分
  • 使用 NiFi 更新 CSV 内字段中的值

    我想实现一个简单的用例 使用 NiFi 将 CSV 内字段中的多个字符串 文本值更新为整数值 例如 我的 CSV 文件如下所示 输入 CSV 文件 字段 1 字段 2 美国 苹果 美国 苹果 印度 葡萄 中国城 奥兰治 澳大利亚民族 桃子
  • 如何让 QLabel 扩展到全宽?

    我想要一个QLabel无论内容如何 都扩展到容器的整个宽度 我想要这个 因为我动态设置文本并稍后添加小部件 这导致它切断部分文本 Widget Widget QWidget parent QWidget parent this gt set
  • 使用宏对数据集中的列按组求和

    我有一个数据集 如下所示 Month Cost Center Account Actual Annual Budget June 53410 Postage 13 234 June 53420 Postage 0 432 June 5343
  • javascript中div的随机位置

    我正在尝试使用 javascript 使 Div 随机出现在网页上的任何位置 因此 一个 div 出现然后消失 然后另一个 div 出现在页面上的其他位置然后消失 然后另一个 div 再次出现在页面上的另一个随机位置然后消失 依此类推 我不
  • 使用 csv 文件进行 Flyway 特定迁移

    我们正在使用 Flyway 通过 sql 脚本在我们的测试环境中保持最新的许多数据库 并且它工作得很好 但我们还特别需要使用 csv 文件更新数据库 我知道 Flyway 提供了一些基于 Java 的迁移来处理更复杂的更新 但问题是这些 J
  • 如何读取基于EMV的智能VISA卡详细信息

    我正在尝试从 VISA 卡读取信用卡数据 但无法成功 正如在互联网资源中我发现对于 MASTER 卡 我们可以使用 1PAY SYS DDF01 文件选择 PSE 目录 然后阅读记录 但对于 VISA 来说 它不是强制性的 当我使用 SEL
  • WeakReference 的 Java 文档中的矛盾

    这个问题是关于理解Java文档中WeakReference的问题 当我读到Java的WeakReference时 我在文档中看到了这样一句话 假设垃圾收集器在某个时刻确定 对象弱可达的时间 到时候就会 原子地清除对该对象的所有弱引用以及所有
  • Objective C 使用字符串动态调用方法

    我只是想知道是否有一种方法可以调用一个方法 我可以用字符串动态构建方法的名称 例如我有一个名为 loaddata 的方法 void loadData 我通常会这样称呼它 self loadData 但我希望能够使用字符串动态调用它 例如 N
  • AngularJS:为什么 ng-bind 在角度上比 {{}} 更好?

    我参加了一场有角度的演讲 其中提到了会议中的一位人士ng bind比 捆绑 原因之一 ng bind将变量放入监视列表中 只有当模型发生更改时 数据才会推送到视图 另一方面 每次都会对表达式进行插值 我猜是角度周期 并推送该值 无论该值是否
  • 枢轴标题样式

    C UWP Windows 10 项目 I need to set Pivot header style to something like this 我尝试使用这个例子堆栈溢出 https stackoverflow com questi
  • Bash 中的布尔运算符( &&、-a、||、-o )

    两者有什么区别 a and oUnix 运算符 这两种类型的使用有何限制 难道仅仅是因为 and 在条件中使用标志时应该使用运算符吗 As in 1 yes r 2 txt versus 1 yes a 2 lt 3 经验法则 Use a