Bash shell 中的“[ ]”与“[[ ]]”[重复]

2024-04-28

这可能已经得到回答,但我还是要问。我有两个版本的脚本(comp.sh)-

#!/bin/sh
export tDay=$(date '+%Y%m%d')
newfile="filename_$tDay"
filename="filename_20120821100002.csv"
echo $newfile $filename
if [ $filename = *$newfile* ]
then
  echo "Matched"
else
  echo "Not Matched!"
fi

Output:
$ ./comp.sh
filename_20120821 filename_20120821100002.csv
Not Matched!

And

#!/bin/sh
export tDay=$(date '+%Y%m%d')
newfile="filename_$tDay"
filename="filename_20120821100002.csv"
echo $newfile $filename
if [[ $filename = *$newfile* ]]
then
  echo "Matched"
else
  echo "Not Matched!"
fi

$ comp.sh
filename_20120821 filename_20120821100002.csv
Matched

有人可以解释一下为什么有区别吗?

另外——什么情况下应该[ ]被使用 vs.[[ ]]反之亦然?


[[是 bash 内置的,不能在#!/bin/sh脚本。你会想阅读条件命令 http://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructsbash 手册的一部分来了解其功能[[。我想到的主要好处是:

  • == and !=执行模式匹配,因此右侧可以是 glob 模式
  • =~执行正则表达式匹配。捕获的组存储在BASH_REMATCH array.
  • 布尔运算符&& and ||
  • 用于表达式分组的括号。
  • 没有分词,因此不必严格引用变量。

主要缺点:您的脚本现在是特定于 bash 的。

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

Bash shell 中的“[ ]”与“[[ ]]”[重复] 的相关文章

  • 属性文件中的字符串主机名:Java

    这听起来可能是一个非常简单的问题 但我无法找到解决方法 我有一个 config properties 文件 其中包含两个键值 IP 地址和端口号 我读取此配置文件以提取字符串格式的键值 但是 当我尝试使用这些值时 我无法连接到从配置文件中检
  • 奇怪的java字符串数组空指针异常[重复]

    这个问题在这里已经有答案了 这个问题是在实践测试中出现的 创建一个新的字符串数组 将其初始化为空 然后初始化第一个元素并打印它 为什么会出现空指针异常呢 为什么它不打印 一 这与字符串不变性有关吗 public static void ma
  • 通过 Node.js 运行 bash 脚本 - 非法选项 -o pipelinefail

    我正在尝试使用 Node js 执行 bash 脚本child process exec 然而它在文件的第二行爆炸 usr bin env bash set eo pipefail TRACE set x echo we are here
  • R:如何将描述小时、分钟和秒的非直观字符串转换为可行的 POSIXct 格式以执行标准算术?

    我在 R 中有一个数据集 其值采用小时 分钟和秒格式 然而 有些值只有小时和分钟 有些值只有分钟和秒 有些值只有分钟 有些值只有秒 它的格式也不是很有利 样本数据如下 example lt as data frame c 22h28m 17
  • AJAX 进度条 - 轮询、Comet?

    我想要一些关于如何实施以下内容的建议 我想让我的用户通过 AJAX 了解在我的服务器上运行的任务的进度 我的服务器运行一个 PHP 脚本 该脚本使用 popen 函数通过 shell 命令下载文件 它定期回显 打印正在发生的事情 我想使用
  • Python3,当 UserString 不表现为字符串时?

    在Python3中我使用UserString扩展内置字符串的功能 通常UserStrings 的行为就像strs 但与re我遇到了意想不到的情况TypeError bpython version 0 17 1 on top of Pytho
  • Ruby 在特定目录中运行 shell 命令

    我知道如何在 Ruby 中运行 shell 命令 例如 x cmd 但是 如何指定运行此命令的目录 有没有类似的脱壳方式 类似subprocess Popen在Python中 subprocess Popen r c mytool tool
  • Excel ISNUMBER 函数与 IF 语句

    我有一个正在使用的 Excel 文件 有一个列包含数字和文本 有时只是其中之一 我正在尝试编写一个函数来扫描单元格的最左侧部分以查看它是否以数字开头 我以为我拥有它 但显然没有 这就是我所拥有的 IF ISNUMBER LEFT E8 1
  • MySql 查询在选择中将 NULL 替换为空字符串

    如何用空字符串替换 select 中的 NULL 值 输出 NULL 值看起来不太专业 这是非常不寻常的 根据我的语法 我希望它能够工作 我希望能得到一个解释 为什么没有 select CASE prereq WHEN prereq IS
  • Python,将字典存储在数据库中

    在数据库中存储和检索 python 字典的最佳方法是什么 如果您对使用传统 SQL 数据库 例如 MySQL 不是特别感兴趣 您可以研究非结构化文档数据库 其中文档自然映射到 python 字典 例如MongoDB http www mon
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 正则表达式提取美国邮政编码,但不提取假代码

    使用 XML 包和 XPath 从网站上抓取地址 有时我只能得到一个嵌入了我想要的邮政编码的字符串 提取邮政编码很简单 但有时会显示其他五位数字的字符串 以下是 df 中问题的一些变体 zips lt data frame id seq 1
  • java String.format 中的转义格式化字符

    这个问题几乎与这个 Net 问题 https stackoverflow com questions 91362 how to escape brackets in a format string in net除了java 你如何逃脱 1
  • 使用转义序列渲染文本(如终端)

    你好 我正在寻找一些库或工具来在文本文件中呈现带有转义序列字符的文本 我不知道如何称呼它 但这是一个例子 echo e abc vdef abc def echo e abc vdef gt tmp xxxxx vi tmp xxxxx 我
  • Notepad++:: 通过正则表达式完全删除包含问号的行

    嗯 我想这就是我的标题 这对于我将要实现的目标来说是不言自明的 这是我当前的文本文件的示例 Diva was the winning song of the Eurovision Song Contest 1998 Who will win
  • SQL Server 转换选择一列并将其转换为字符串

    是否可以编写一条从表中选择列并将结果转换为字符串的语句 理想情况下 我希望有逗号分隔的值 例如 假设 SELECT 语句看起来像这样 SELECT column FROM table WHERE column lt 10 结果是一列包含值的
  • 将儒略时间戳转换为 UNIX 中的常规时间

    我需要使用 Bash 将 UNIX 中的 Julian 时间戳转换为常规时间戳 在 Tandem OS 上 转换非常简单 例子 212186319010244541 OLSAPP SYSTST 1 gt interprettimestamp
  • 如何隐藏显示终端命令输出

    当我运行这个命令时 sudo htpasswd b home reynolds htpasswd admin admin 我正在得到输出Updating password for user admin在终端中 但我不想显示该输出 所以我在谷
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 从实例驻留在固定格式(数据库、MMF)的基类派生...如何安全?

    Note 我正在寻找有关正确搜索词的任何建议来阅读此类问题 对象关系映射 http en wikipedia org wiki Object relational mapping我想到了一个可以找到一些好的现有技术的地方 但我还没有看到任何
  • CALayer 不显示

    这是我第一次尝试使用 CALayer 构建成功并且没有报告错误 所以我认为我一定做了一些明显错误的事情 但该图层根本不显示 void viewDidLoad Get Reliant Magenta in amazingly verbose
  • 正则表达式:忽略大小写

    如何使以下正则表达式忽略大小写 它应该匹配所有正确的字符 但忽略它们是小写还是大写 G a b 假设你想要whole正则表达式忽略大小写 你应该寻找i flag http www regular expressions info modif
  • Windows 8 的 mvvmlight 中缺少 EventToCommand 行为 - 解决方法?

    问题确实说明了一切 我正在使用 MVVM Light 用 XAML C 编写一个 Windows 8 应用程序 我注意到 EventToCommand 功能尚未实现 有人可以建议对此有任何解决方法吗 thanks 您现在可以使用 Event
  • 使用带有二进制存档的 boost 序列化时出错

    我在读取时收到以下错误boost archive binary iarchive进入我的变量 test serialization 9285 0x11c62fdc0 malloc can t allocate region mach vm
  • 使用当前用户的凭据进行 javamail NTLM 身份验证

    如何将 JavaMail API 与 NTLM 身份验证结合使用到 Exchange 服务器 而无需指定用户名和密码 而是自动使用当前登录用户的凭据 单点登录 我的目的是让我的客户端程序 在我公司网络中的 Windows 计算机上运行 能够
  • 如何在 Prolog 中计算数字序列的和

    任务是计算从0到M的自然数之和 我使用SWI Prolog编写了以下代码 my sum From To From gt To my sum From To S From 0 Next is 1 S is 1 my sum Next To S
  • JMS队列消息接收顺序

    我按顺序在同一目标中添加两条 JMS 消息 这两条消息的接收顺序是否与我添加它们的顺序相同 或者是否有可能进行相反的排序 即首先检索目的地中首先接收到的消息 我将添加到目的地 producer send Msg1 producer send
  • Groovy 二维数组

    我有3个数组 l1 l2 and l3 每个都有 5 个字符 e g l1 A B C D E 二维数组由这些组成 screen l1 l2 l3 所以它看起来像这样 screen 我怎样才能迭代这个数组 我打电话吗screen 5 or
  • 在单个图中,由“标签”列分割的所有列的箱线图

    看着箱线图 API 页面 http seaborn pydata org generated seaborn boxplot html seaborn boxplot 我想要看起来像这样的组合的东西 gt gt gt iris sns lo
  • gform_after_submission 发布到第三方 API

    我正在尝试使用客户WordPress网站的functions php文件中的gform after submission钩子将这串信息发送到第三方API 此url由第三方客户提供 我需要将其与每次注册相匹配 这是我在 Functions p
  • 使用 window.print 内容将网页下载为 pdf

    我想要一个链接 当单击该链接时 会自动开始下载网页的可打印版本 我正在使用Moodle 我想要的内容是完全相同的如果我使用 ctrl p 下载页面并保存为 pdf 或使用 a href Download web page a 我正是想要该内
  • 根据自定义数组位置排序帖子

    我想根据自定义字段列出帖子列表 这里我有 9 个帖子 有不同的 3 个位置 中 上 下 Post ID title position 1 Post1 Top 2 Post2 Bottom 3 Post3 Top 4 Post4 Bottom
  • C# - 使用 TableAdapter 从存储过程返回单个值返回 null

    我不明白 但我添加到表适配器的存储过程仅返回空值 它应该返回一个简单的整数值 在我使用数据集设计器进行的预览中 我可以清楚地获得我想要的整数值 但由于某种原因 我无法从我的代码中获取价值 我按照MSDN库的说明进行操作 http msdn
  • 对 solr 搜索结果进行排序。给出错误无法对多值字段进行排序:名称

    我对 Apache Solr 搜索比较陌生 我正在尝试对 Solr 查询中的结果集进行排序 查询 名称 abc AND 隐藏 false sort name desc 它显示错误 无法对多值字段进行排序 名称 Solr版本是 7 2 1 如
  • 将列的百分比设置为 0 (pandas)

    我有一个 pandas 数据框 我想将列的某些百分比设置为 0 假设 df 有两列 A B 1 6 2 7 3 8 4 4 5 9 我现在想将 df 的前 20 和后 20 的 B 设置为 0 A B 1 0 2 7 3 8 4 4 5 0
  • 通过 DFS 查找图中的强连通分量

    我正在阅读有关 BFS 和 DFS 的图算法 当我分析通过DFS在图中查找强连通分量的算法时 我想到了一个疑问 为了找到强连通分量 书 Coremen 做了什么 首先它在图上运行 DFS 以获得顶点的完成时间 然后再次以完成时间的降序在图的
  • 如何“安装”自定义 Windows 驱动程序?

    我计划用 C 语言编写一个基本的 Windows 注册表过滤器 该过滤器的目的是挂钩所有 用户和内核特权 注册表调用 以便我可以在我的程序中使用它们 我基本上是复制 Mark Rusinovich 的 regmon 进程监视器 但更基本 我
  • pdfBox 返回错误的编码字符

    我有一个pdfhttp www persianacademy ir UserFiles File fe1394 pdf http www persianacademy ir UserFiles File fe1394 pdf我想从中提取单词
  • Bash shell 中的“[ ]”与“[[ ]]”[重复]

    这个问题在这里已经有答案了 这可能已经得到回答 但我还是要问 我有两个版本的脚本 comp sh bin sh export tDay date Y m d newfile filename tDay filename filename 2