我有一个这样的目录结构:
incoming--
|--sub-P001--|
|--func
|--anat
|--sub-P002--|
|--anat
| ....
对于每个子目录,我需要检查它是否包含名为 的子目录func
,如果包含,则运行命令fmriprep-docker
,否则运行另一个命令。
我尝试了这段代码,但它被卡住了:
if [ -d $mnt/data/service/incomning/$sub-P*/func ] ; then
fmriprep-docker run -it ... /mnt/data/service/incoming
else:
fmriprep-docker run -it --anat-only /mnt/data/service/incoming
fy
fy
答案1
if
您无法在这样的单个语句中同时检查一堆路径名。相反,您必须迭代父文件夹并测试每个文件夹是否包含目录func
:
for directory in "$mnt"/data/service/incomning/sub-P*/; do
if [ -d "$directory"/func ]; then
(cd "$directory" && fmriprep-docker run -it ...)
else
(cd "$directory" && fmriprep-docker run -it --anat-only)
fi
done
或类似的东西(我不知道这个fmriprep-docker
工具的作用或使用方式)。