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