迭代文件

迭代文件

我有两个文件夹,Controls每个Patients文件夹内都有几个文件夹,其中一个名为Runfirstall。我有以下代码:

DIR="/media/Roy/Analysis"  

for group in Controls Patients; 
    do
    echo $group 
    for folder in $DIR/$group/!(Runfirstall)/
        do
        name=$(basename "$folder")  
        echo $name 
    done;
done;

这给了我这个错误:

./test.sh: line 7: syntax error near unexpected token `('
./test.sh: line 7: `    for folder in $DIR/$group/!(Runfirstall)'

问题是,如果我在脚本给出之前执行 extglob:

shopt extglob 
extglob         on

答案1

脚本的 shell 选项不会从运行它的交互式 shell 中继承 - 你需要显式地

shopt -s extglob

里面剧本。

您还应该#!/bin/bash在脚本顶部添加一个 shebang,以明确应该使用什么 shell。

相关内容