bash – for for循环目录中的每个文件夹,不包括其中一些文件夹

前端之家收集整理的这篇文章主要介绍了bash – for for循环目录中的每个文件夹,不包括其中一些文件夹前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
非常感谢您提前帮助!

我在bash中有这个代码

  1. for d in this_folder/*
  2. do
  3. plugin=$(basename $d)
  4. echo $plugin'?'
  5. read $plugin
  6. done

这就像一个魅力.对于’this_folder’中的每个文件夹,将其作为一个问题回显并将输入存储到具有相同名称的变量中.

但是现在我想排除一些文件夹,例如,它会询问该目录中的每个文件夹,只要它们不是以下任何文件夹:global,plugins和css.

任何想法我怎样才能做到这一点?

谢谢!

更新:

这是最终代码的样子:

  1. base="coordfinder|editor_and_options|global|gyro|movecamera|orientation|sa"
  2.  
  3. > vt_conf.sh
  4. echo "# ========== Base" >> vt_conf.sh
  5. for d in $orig_include/@($base)
  6. do
  7. plugin=$(basename $d)
  8. echo "$plugin=y" >> vt_conf.sh
  9. done
  10. echo '' >> vt_conf.sh
  11. echo "# ========== Optional" >> vt_conf.sh
  12. for d in $orig_include/!($base)
  13. do
  14. plugin=$(basename $d)
  15. echo "$plugin=n" >> vt_conf.sh
  16. done
如果你有最新版本的bash,你可以使用扩展的globs(shopt -s extglob):
  1. for d in this_folder/!(global|plugins|css)/
  2. do
  3. plugin=$(basename "$d")
  4. echo $plugin'?'
  5. read $plugin
  6. done

猜你在找的Bash相关文章