bash 中出现异常的循环

bash 中出现异常的循环

如何编写一个循环pro除a.py之外的所有文件*.py?

for i in *.py && !(a.py); do 
    python3 $i
done

答案1

扩展的全局shopt extglob在 Bash 中设置),!(a).py应该匹配所有以 结尾的文件名.py,除了a.py

$ shopt -s extglob
$ ls 
a.py  bar.py  foo.py  foo.txt
$ echo !(a).py
bar.py foo.py

但您也可以通过测试手动排除该文件,这不需要任何特定于 Bash 的功能:

for f in ./*.py; do
    [ "$f" = a.py ] && continue
    python "$f"
done

相关内容