我有两个文件夹,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。