首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bash -c和Globbing

使用bash -c和Globbing
EN

Stack Overflow用户
提问于 2012-10-10 04:36:34
回答 1查看 449关注 0票数 1

我在一个命令上运行gnu-parallel,该命令在从bash shell运行时运行得很好,但当parallel使用-c标志通过bash执行它时,会返回一个错误。我认为这与我正在使用的特殊globbing表达式有关。

代码语言:javascript
复制
ls !(*site*).mol2

这将成功返回。

启用该标志后,命令将失败

代码语言:javascript
复制
/bin/bash -c 'ls !(*site*).mol2'
/bin/bash: -c: line 0: syntax error near unexpected token `(' 

手册中只指定-c调用bash来读取字符串的参数,我是不是漏掉了什么?

编辑:我应该补充说,我需要从gnu并行字符串运行这个命令,所以最终得到的命令必须可以通过/bin/bash -c "Some Command“运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 04:40:38

您应该尝试以下代码:

代码语言:javascript
复制
bash <<EOF
shopt -s extglob
ls !(*site*).mol2
EOF

说明:

当您运行bash -c时,您将创建一个subshell,并且不会继承shopt设置。

编辑

如果你真的需要one liner:

代码语言:javascript
复制
bash -O extglob -c 'ls !(*site*).mol2'

See this thread

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12808011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档