csh 集:不匹配错误通配符

csh set: no match error wildcard

尝试在带有通配符 * 的目录中查找文件,并将名称放入数组中

文件名称相似(MATCHr1、MATCHr2 ...)

当文件不存在时出现问题(有可能)

设置命令returns一个"no match"错误并终止循环

如果发生这种情况,我如何通过跳转到下一次迭代来处理错误?

set SUBIDS = (10003 10005 10006)

foreach SUBID ($SUBIDS)

foreach SEQR ( MATCH ENC NBACK SIMON FACE )

ls -l  *${SEQR}*.nii.gz

set Array = *${SEQR}*.nii.gz

echo $Array[*]

..其余代码使用数组的内容来创建文本文件 当 *${SEQR}*.nii.gz returns 文件名

时效果很好

但当没有与通配符匹配时失败

如有任何帮助,我们将不胜感激

谢谢!

你可以执行 ls 并检查 $status(或 $STATUS,取决于你的系统)标志:
ls -l *${SEQR}*.nii.gz >> /dev/null ; if !$status then ...