次のディレクトリ構造があります。
incoming--
|--sub-P001--|
|--func
|--anat
|--sub-P002--|
|--anat
| ....
各サブディレクトリに名前付きサブディレクトリが含まれていることを確認する必要があります。含まれている場合はfunc
command を実行し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
またはこれと似ています(このツールの機能や使用方法がわかりません)。