我正在使用命令ls files/@(*.text|*.txt|*.xt)
获取以任何模式结尾的所有文件。
当我在 shell 中运行它时,我得到这个结果
$ ls files/@(*.text|*.txt|*.xt)
files/f1.text files/f1.txt files/f1.xt
当我创建 bash 脚本时,它会抛出错误ls: cannot access files/@(*.text|*.txt|*.xt): No such file or directory
这是我的 bash 脚本的副本
#!/bin/bash
ls files # this one works
ls files/@\(*.text\|*.txt\|*.xt\) # This doesn't work
运行 bash 脚本时的完整输出
$ ./testScript.sh
files/f1.text files/f1.txt files/f1.xt
ls: cannot access files/@(*.text|*.txt|*.xt): No such file or directory
确认 shell 是 bash shell
$ echo $SHELL
/bin/bash
我也尝试过:
-
ls files/@\(*.text|*.txt|*.xt\)
- 投掷line 4: *.xt): command not found
-
ls files/@(*.text|*.txt|*.xt)
- 投掷line 4: syntax error near unexpected token
('`
- 运行与
sh ./testScript.sh
- 与原始错误相同的错误。
- using
/files/@(*.text|*.txt|*.xt)
- 不走运(与此列表中上面的错误相同)
您可以在脚本中启用 extglobshopt -s extglob
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)