为什么模式“ * .so?(。*)”在脚本中而不在命令行中产生语法错误?

约翰·默德

该模式有点不寻常,因为我添加了结尾的“?(。*)”部分。它可以按预期在命令行上运行,但是在脚本中出现相同语法错误。

$ bash --version
GNU bash, version 4.3.11(1)-release (i686-pc-linux-gnu)
...
$ cat x.sh
touch a.so a.so.1
ls *.so?(.*)
rm *.so?(.*)
$ touch a.so a.so.1
$ ls *.so?(.*)
a.so  a.so.1
$ rm *.so?(.*)
$ ls
x.sh
$ bash x.sh
x.sh: line 2: syntax error near unexpected token `('
x.sh: line 2: `ls *.so?(.*)'
$
汤姆·费内奇

您正在使用扩展的glob,但默认情况下未在脚本中启用这些功能。为了使用它们,必须显式启用它们。您可以通过在行之前添加以下代码来做到这一点:

shopt -s extglob

要稍后在脚本中禁用它们,可以使用shopt -u extglob

正如chepner正确指出的那样,默认情况下,交互式外壳也未启用此功能。大概,此行出现在您的系统级启动脚本之一或您的个人脚本之一中。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我在rpm脚本中出现“ [...] 2>>(tee -a $ logfile>&2)[...]”的语法错误,但是从命令行运行时却找不到语法错误,以及如何使其正常工作?

来自分类Dev

为什么不在本地环境中引发语法错误?

来自分类Dev

为什么grep在脚本而不是命令行中失败

来自分类Dev

bash:为什么()在脚本中导致错误,但在命令行中却没有?

来自分类Dev

为什么在替换模式下映射<ESC>启动命令行Vim?

来自分类Dev

命令模式-为什么封装在对象中?

来自分类Dev

为什么重载main方法会产生语法错误?

来自分类Dev

将脚本直接放入命令中时,为什么命令行参数不起作用?

来自分类Dev

如果我不在AWK的END块中写'if',为什么会出现语法错误?

来自分类Dev

如果我不在AWK的END块中写'if',为什么会出现语法错误?

来自分类Dev

为什么命令式语言没有模式匹配?

来自分类Dev

为什么在命令模式下不导出我的shell(sh)变量?

来自分类Dev

为什么具有以下模式的grep命令的输出是这样的?

来自分类Dev

为什么此sed命令无法捕获模式?

来自分类Dev

为什么在命令模式下不导出我的shell(sh)变量?

来自分类Dev

为什么ViewPager在Android Studio设计模式下出现错误?

来自分类Dev

为什么我的json模式让错误的值通过?

来自分类Dev

为什么我的工厂模式在编译时返回错误?

来自分类Dev

为什么对于以下mongooseJS模式会出现转换错误?

来自分类Dev

为什么在NASM 16位模式下,“ add cx,1234”会在objdump中产生<unknown>?

来自分类Dev

JS模块模式:为什么要在扩展中赋值?

来自分类Dev

为什么我无法在Haskell中按比例匹配模式?

来自分类常见问题

为什么此数据不是python中avro模式的示例?

来自分类Dev

为什么在C#中基于模式的编程

来自分类Dev

Rails 5为什么在模式文件中添加nextval方法?

来自分类Dev

为什么仍在此严格模式代码中定义窗口?

来自分类Dev

为什么在函数定义中首选模式匹配?

来自分类Dev

为什么在此Elixir程序中需要:error模式匹配?

来自分类Dev

为什么此数据不是python中avro模式的示例?

Related 相关文章

  1. 1

    为什么我在rpm脚本中出现“ [...] 2>>(tee -a $ logfile>&2)[...]”的语法错误,但是从命令行运行时却找不到语法错误,以及如何使其正常工作?

  2. 2

    为什么不在本地环境中引发语法错误?

  3. 3

    为什么grep在脚本而不是命令行中失败

  4. 4

    bash:为什么()在脚本中导致错误,但在命令行中却没有?

  5. 5

    为什么在替换模式下映射<ESC>启动命令行Vim?

  6. 6

    命令模式-为什么封装在对象中?

  7. 7

    为什么重载main方法会产生语法错误?

  8. 8

    将脚本直接放入命令中时,为什么命令行参数不起作用?

  9. 9

    如果我不在AWK的END块中写'if',为什么会出现语法错误?

  10. 10

    如果我不在AWK的END块中写'if',为什么会出现语法错误?

  11. 11

    为什么命令式语言没有模式匹配?

  12. 12

    为什么在命令模式下不导出我的shell(sh)变量?

  13. 13

    为什么具有以下模式的grep命令的输出是这样的?

  14. 14

    为什么此sed命令无法捕获模式?

  15. 15

    为什么在命令模式下不导出我的shell(sh)变量?

  16. 16

    为什么ViewPager在Android Studio设计模式下出现错误?

  17. 17

    为什么我的json模式让错误的值通过?

  18. 18

    为什么我的工厂模式在编译时返回错误?

  19. 19

    为什么对于以下mongooseJS模式会出现转换错误?

  20. 20

    为什么在NASM 16位模式下,“ add cx,1234”会在objdump中产生<unknown>?

  21. 21

    JS模块模式:为什么要在扩展中赋值?

  22. 22

    为什么我无法在Haskell中按比例匹配模式?

  23. 23

    为什么此数据不是python中avro模式的示例?

  24. 24

    为什么在C#中基于模式的编程

  25. 25

    Rails 5为什么在模式文件中添加nextval方法?

  26. 26

    为什么仍在此严格模式代码中定义窗口?

  27. 27

    为什么在函数定义中首选模式匹配?

  28. 28

    为什么在此Elixir程序中需要:error模式匹配?

  29. 29

    为什么此数据不是python中avro模式的示例?

热门标签

归档