와일드 카드 *로 디렉토리에서 파일을 찾고 이름을 배열에 넣으려고합니다.
파일 이름이 비슷합니다 (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
파일 이름을 반환 할 때 훌륭하게 작동 합니다.
그러나 와일드 카드와 일치하지 않으면 실패합니다.
도움이 될 것입니다.
감사!
ls를 수행하고 $ status (또는 시스템에 따라 $ STATUS) 플래그를 확인할 수 있습니다.
ls -l *${SEQR}*.nii.gz >> /dev/null ; if !$status then ...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다