아래 스크립트에서 for 루프는 unph4로만 출력됩니다. $coils의 값을 직접 작성해 보았는데 잘 되지 않았습니다. 다른 반복 값을 시도해 보았는데, 얻은 최대 값은 9였습니다. (반복 횟수는 꼭 한자리여야 하나요?)
coil=34;
bash_command = sprintf(['for ph in all/ph[1-$coil].nii\n' ...
'do\n' ...
' base=`basename $ph`;\n' ...
' dir=`dirname $ph`;\n' ...
' mag=$dir/"mag"${base:2};\n' ...
' unph="unph"${base:2};\n' ...
' prelude -a $mag -p $ph -u $unph -n 12&\n' ...
'done\n' ...
'wait\n' ...
'gunzip -f unph*.gz\n']);
unix(bash_command);
답변1
, , 및 all/ph[1-34].nii
4개의 파일까지 일치하기 때문입니다 .all/ph1.nii
all/ph2.nii
all/ph3.nii
all/ph4.nii
[
쉘 모드에서 -
char1 char2 형식의 구성은 ]
char1과 char2 사이에 정렬된 문자와 일치하므로 , 및 와 [1-34]
일치합니다 .1
2
3
4
for
루프를 다음으로 변경하고 싶을 수도 있습니다 .
for i in $(seq 1 $coil)
do
ph=all/ph${i}.nii
...
done