0
试图查找文件与通配符*目录,并把名字到一个数组CSH集:不匹配错误通配符
文件具有类似名称(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[*]
....代码其余产品使用阵列的内容创建文本文件 伟大工程时,*${SEQR}*.nii.gz
返回一个文件名
但是当没有比赛用通配符做失败
任何帮助都会好起来的
谢谢!
尝试添加在数组大小检查你定义后('如果#$阵列> 0') – user2141046
哪里? 'ls -l * $ {SEQR} *。nii.gz'返回:不匹配,但允许代码继续到'set Array = * $ {SEQR} *。nii.gz',它也返回不匹配,但脚本退出并且不会继续下一个'SEQR' – gijoeyjoe
你可以做ls并检查$ status(或$ STATUS,取决于你的系统)标志:'ls -l * $ {SEQR} *。nii.gz >>/dev /空值 ;如果!$状态那么......'我现在不在我的机器旁边检查确切的语法,但这是它的精神...... – user2141046