Перебирать файлы внутри

У меня есть две папки: 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
задан 3 May 2021 в 21:43

1 ответ

Опции оболочки скрипта не наследуются от интерактивной оболочки, в которой он выполняется - вам нужен явный

shopt -s extglob

внутри скрипта.

Вы также должны добавить #!/bin/bash shebang в начало сценария, чтобы было ясно, какая оболочка должна использоваться.

0
ответ дан 7 May 2021 в 17:40

Другие вопросы по тегам:

Похожие вопросы: