扩展文件通配符无法在 bash 脚本中使用 cat

扩展文件通配符无法在 bash 脚本中使用 cat

当我在终端中输入

cat ~/my/+(a|b)/doc

它从 ~/my/a/doc 和 ~/my/b/doc 读取都正常,但是当我将该命令放入脚本中时bash

#!/bin/bash
cat ~/my/'+(a|b)'/doc

我收到错误:

cat: ~/my/+(a|b)/doc: No such file or directory

是否无法在bash脚本内使用扩展通配符?

答案1

您必须打开extglob

#!/bin/bash
shopt -s extglob
cat ~/my/+(a|b)/doc

+()是扩展模式,仅在extglob启用时才被识别。默认情况下extglob,在交互式 shell 中打开,在非交互式 shell 中关闭。

相关内容