我对bash中双引号的用法感到困惑

最近,我正在忙着编写bash脚本来满足我的需求。但是,在编码期间,我发现双引号的用法有时相互矛盾。例如,我尝试查找一些与正则表达式匹配的文件,例如ls "*.log"我习惯性地*.log用双引号将括起来,但会收到错误消息cannot access '*.txt': No such file or directory

之后,我从教程中发现了一个原因,*当您希望将*其用作通配符,将双引号引起来是没有用的因此,ls *.log是正确的用法。

然而,当我使用的grep命令与正则表达式,他们三个(""'',无引号)不会改变我的正则表达式的本义,如grep "^s.txt"此时,双引号使正则表达式处于活动状态。

命令之间是否存在一些设计冲突?能否请您给我一些技巧,以快速掌握常用命令的正确引号用法?

卡米尔·马乔洛夫斯基(Kamil Maciorowski)

如果是ls *.log外壳,ls启动前先扩展通配符然后ls给出结果该工具没有可*自行扩展功能

在外壳程序的情况下,grep "^s.txt"仅删除引号(通常仍然有用以告诉外壳程序如何处理带引号的字符串),grep获取^s.txt并执行其工作。如果不加引号,^s.txt则外壳程序无关,因此结果是相同的。但总体上可能会有所不同(例如与a*.*txt)。

比较一下:find和通配符(和通配符)两者find -name和外壳能够使用的*作为通配符。这取决于将采取行动的报价。结果通常是不同的,有时是错误的。您需要知道是否要扩展外壳*

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我对super()用法感到困惑

来自分类Dev

bash中的双引号

来自分类Dev

bash中的引号内的双引号

来自分类Dev

对Bash中的方括号感到困惑

来自分类Dev

对Bash中的可变范围感到困惑

来自分类Dev

在vim中折叠代码使我感到困惑

来自分类Dev

我对javascript中的if语句感到困惑

来自分类Dev

在vim中折叠代码使我感到困惑

来自分类Dev

我对 java 中的返回方法感到困惑

来自分类Dev

我对 Sequelize 中的关联感到困惑

来自分类Dev

对嵌套打印用法中的打印顺序感到困惑

来自分类Dev

Javascript:对Infinity的用法感到困惑

来自分类Dev

对C ++类用法感到困惑

来自分类Dev

bash中的getopts,脚本以前工作过,现在我感到困惑

来自分类Dev

为什么我感到困惑“当命令在BASH中失败时,退出状态代码为0”

来自分类Dev

令人困惑的双引号

来自分类Dev

输出| ...使我感到困惑

来自分类Dev

叉子让我感到困惑

来自分类Dev

QT让我感到困惑

来自分类Dev

bash中的双引号如何匹配(配对)?

来自分类Dev

bash脚本中的双引号问题

来自分类Dev

如何防止$ @与bash中的双引号冲突?

来自分类Dev

awk单引号或双引号用法

来自分类Dev

awk单引号或双引号用法

来自分类Dev

在Bash脚本中对此“ find”命令感到困惑吗?

来自分类Dev

对“ std :: istreambuf_iterator”的用法感到困惑

来自分类Dev

对C语言中free()的用法感到困惑

来自分类Dev

Bash脚本双引号

来自分类Dev

Bash脚本双引号