非常感谢您的帮助!
我在 bash 中有这段代码:
for d in this_folder/*
do
plugin=$(basename $d)
echo $plugin'?'
read $plugin
done
这就像一个魅力。对于“this_folder”中的每个文件夹,将其作为问题回显并将输入存储到具有相同名称的变量中。
但现在我想排除一些文件夹,例如,它会询问该目录中的每个文件夹,前提是它们不是以下任何文件夹:global、plugins 和 css。
有什么想法可以实现吗?
谢谢!
更新:
最终代码是这样的:
base="coordfinder|editor_and_options|global|gyro|movecamera|orientation|sa"
> vt_conf.sh
echo "# ========== Base" >> vt_conf.sh
for d in $orig_include/@($base)
do
plugin=$(basename $d)
echo "$plugin=y" >> vt_conf.sh
done
echo '' >> vt_conf.sh
echo "# ========== Optional" >> vt_conf.sh
for d in $orig_include/!($base)
do
plugin=$(basename $d)
echo "$plugin=n" >> vt_conf.sh
done
最佳答案
如果你有最新版本的 bash,你可以使用扩展的 globs(shopt -s extglob
):
shopt -s extglob
for d in this_folder/!(global|plugins|css)/
do
plugin=$(basename "$d")
echo $plugin'?'
read $plugin
done
关于bash - for循环目录中的每个文件夹,不包括其中的一些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085929/