当前位置: 首页 > 面试题库 >

模式匹配在bash脚本中不起作用

章哲彦
2023-03-14
问题内容

!("file1")在bash脚本中不能使用模式匹配,但可以在命令行上使用。

例如:

ls  !("file1"|"file2")

这将列出目录中除file1和以外的所有文件file2

在脚本中执行该行时,将显示此错误:

./script.sh: line 1: syntax error near unexpected token `('
./script.sh: line 1: ` ls  !("file1"|"file2") '

不管用什么rm -v !("file1")。发生相同的错误。这是怎么回事,为什么这在脚本中不起作用?


问题答案:

默认情况下,您尝试使用的扩展glob语法是关闭的;您必须在要使用它的每个脚本中分别启用它。

shopt -s extglob

脚本不应该使用,ls尽管我想您在这里只是将其用作占位符。



 类似资料:
  • 问题内容: 我需要找到6位数字的模式,而前3位数字是特定数字,但其余3位数字将是任意数字。例如,以123开头的6位数字字符串,后跟任意3位数字。 ddd是任何数字。var1和var2将匹配模式,但var 3将不匹配。我似乎无法完全正确。 问题答案: 使用字符类:比赛,和在字符集之间的每一个字符,这-至少在Unicode和子集的字符集(US-ASCII,拉丁语1,UTF-8) -是数字通过。因此,它

  • 问题内容: 我正在尝试使用bash脚本将JSON文件上传到我的noSQL数据库中,但是它不起作用,我也不明白为什么。 这是脚本: 这是错误: 当我执行命令行中给出的命令时,它仍然可以正常工作。 这是什么错误?谢谢 问题答案: 不要将命令存储在变量中;如果您绝对必须具有可用于日志记录的内容,请将 参数 放入数组中。

  • 但似乎不起作用。从系统返回: 不确定是什么问题。任何帮助都很感激。

  • 问题内容: 我创建了一个非常简单的bash脚本,该脚本运行一些命令。这些命令之一在运行时需要用户输入。即它询问用户“您想等等吗?”,我只想向其发送回车按键,以便脚本将完全自动化。 我将不必在运行时等待输入或其他任何东西,它足以发送按键,输入缓冲区将处理其余部分。 问题答案: 或利用echo生成的隐式换行符(感谢Marcin) 现在我们可以简单地使用以下选项: ,请勿在每次测试后等待按键 即

  • 我在为Spring Cloud Config服务器定义多个基于svn的配置存储库时遇到了问题。我已经建立了三个配置库。一个用于开发,单位和生产。我已经将默认值设置为development(通过设置spring.cloud.config.server.svn.uri=development repo uri)。但是,每当我向配置服务器的RESTendpoint发出GET请求时,无论我请求哪个概要文件

  • 问题内容: 我知道进行解析时,我应该理想地删除所有空格和换行符,但是我只是为了快速解决此问题,所以不知道为什么它不起作用。带有“ #### 1”之类的包装器的文档,并尝试基于此进行解析,但是无论我尝试如何,它都无法正常工作,我认为我正确地使用了多行。 这根本不会返回任何结果: 问题答案: 尝试(当然也可以)。 此正则表达式将返回包含节号和节内容的元组。 对于您的示例,这将返回。 (顺便说一句:您的