如何合并两个通配符表达式

How to merge two wildcard expressions

在 shell 脚本中,我需要对所有扩展名为 .F90.F 的文件应用相同的 shell 代码。

目前我使用

for file in *.F90 ;do ...
    # Code I need to run

for file in *.F; do ...
    # Same block of code copy-pasted.

有没有办法合并这两个循环,生成匹配文件数组,然后应用操作?

我不确定我是否理解你的问题,因为我不明白你为什么需要数组。

这将是合法的语法:

for file in *.F90 *.F ; do ...

要保留受影响文件的列表,您可以这样做:

shopt -s nullglob
files="*.F90 *.F"
for file in ${files} ; do ...

注意:nullglob 行防止 lame (IMO) 行为应该 *.F90 或 *.F 不匹配任何文件。