我正在尝试使用此脚本:
#!/bin/csh
foreach SUB (1 2 3 4 5 6 7 8 9 10 11 12 13 14)
echo $SUB
foreach VISIT (1 2 3 4 5 6 7 8)
echo $VISIT
grep 'StudyDate' -f /home/colourlab/Desktop/DrummingDTI/D${SUB}/D${SUB}V${VIS}/scout/001/infodump.dat
done
done
Run Code Online (Sandbox Code Playgroud)
但每次我收到此错误消息时:
1
1
SUB: Undefined variable.
Run Code Online (Sandbox Code Playgroud)
我不知道为什么。
除了脚本不应该用csh
.
你用 开始你的循环,csh
foreach
并试图用 结束它们bash
done
。a 的循环退出csh
foreach
是end
,不是done
。此外,您有一个在 grep 语句VISIT
中调用的变量$VIS
。
所以你的脚本在 csh 中在语法上是正确的:
#!/bin/csh
foreach SUB (1 2 3 4 5 6 7 8 9 10 11 12 13 14)
echo $SUB
foreach VISIT (1 2 3 4 5 6 7 8)
echo $VISIT
grep 'StudyDate' -f /home/colourlab/Desktop/DrummingDTI/D${SUB}/D${SUB}V${VISIT}/scout/001/infodump.dat
end
end
Run Code Online (Sandbox Code Playgroud)
或在 bash 中:
#!/bin/bash
for SUB in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do
echo $SUB
for VISIT in 1 2 3 4 5 6 7 8; do
echo $VISIT
grep 'StudyDate' -f /home/colourlab/Desktop/DrummingDTI/D${SUB}/D${SUB}V${VISIT}/scout/001/infodump.dat
done
done
Run Code Online (Sandbox Code Playgroud)
编辑 2017/04/03
这是为文件添加测试的 bash 脚本版本:
#!/bin/bash
idf_pfx="/home/colourlab/Desktop/DrummingDTI"
idf_sfx="scout/001/infodump.dat"
for SUB in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do
echo $SUB
for VISIT in 1 2 3 4 5 6 7 8; do
echo $VISIT
idfile="${idf_pfx}/D${SUB}/D${SUB}V${VISIT}/${idf_sfx}"
if [ -f "${idfile}" ]; then
grep 'StudyDate' $idfile
else
echo "No studydate file: $idfile"
fi
done
done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6011 次 |
最近记录: |