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 ...
尝试在带有通配符 * 的目录中查找文件,并将名称放入数组中
文件名称相似(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 ...