csh set:无匹配错误通配符

时间:2017-02-15 22:22:54

标签: arrays set glob csh no-match

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

文件具有相似的名称(MATCHr1,MATCHr2 ......)

当文件不存在时出现问题(这是可能的)

set命令返回“不匹配”错误并终止循环

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

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[*]

....其余代码可以使用Array的内容来创建文本文件 当*${SEQR}*.nii.gz返回文件名

时效果很好

但在使用通配符

进行无匹配时失败

任何帮助都会得到很好的帮助

谢谢!

1 个答案:

答案 0 :(得分:0)

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