Shell:检查子目录是否存在,然后运行命令

宗教主义者

我有这样的目录结构:

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
库萨兰达

您不能在单个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工具的用途或用法)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对所有子目录运行命令的 Shell 脚本

Shell脚本检查子目录

通过子目录递归运行命令

检查文件是否在子目录中?

检查元素是否存在于根目录/子目录中

检查子目录

Bash 脚本循环遍历所有子目录,检查脚本目录是否存在,并在那里运行脚本

遍历子目录并在每个子目录中运行命令

如何为子目录递归运行ZSH Glob命令

在所有子目录中运行qsub命令

在所有子目录中递归运行命令

使用 shell 脚本在子目录中运行 make 文件

Bash - 检查子目录是否包含文件夹

如何检查$ PWD是否为给定路径的子目录

如何知道 C++ 中是否存在子目录?

迭代目录和子目录的列表,以在Windows中的每个目录和子目录下运行特定命令

如何检查一个目录是否是另一个目录的子目录

检查列表文件中的任何目录是否为特定目录的子目录

检查Powershell中是否存在多个目录,然后执行命令

SHELL - 在单个命令行中删除主目录及其子目录下的文件

Python:遍历目录树并检查最后一个子目录是否有文件

检查两个目录及其各自的子目录中是否缺少文件

需要检查我的当前目录是否在某个子目录中

是否有一个终端命令可以导航到目录中最深的子目录?

从子目录调用git命令

本地rsync命令捕获/的子目录

在命令中排除子目录

如何编写if语句以检查子目录的zip文件,如果该子目录不存在,则创建一个新目录?

如何从文件中获取子目录列表,然后在目录中创建这些子目录?