我正在测试大量学生的python项目。我在一个单独的文件中创建了一个doctest,比如说mydoctest.rst
。
doctest的第一行导入学生项目的模块:
来自project3 import functionname
当我从与学生项目相同的目录中调用doctest时,doctest工作正常:
studentA$ python3 -m doctest mydoctest.rst
我想做的是使用bash for loop命令为每个子目录执行上述操作,因此我尝试执行以下操作。
parentdirectory$ for d in *; do python3 -m doctest "$d/"mydoctest.rst; done
但是它会尝试在当前目录中而不是在每个子目录中查找模块。
有没有办法在执行do python3 -m doctest
之前首先进入每个子目录?
我目前的解决方法(我不满意)是: 为d in *;做cd“$ d”; python3 -m doctest mydoctest.rst; cd ..;完成
答案 0 :(得分:2)
我建议使用子shell (...)
和cd
:
for d in *; do (cd "$d" && python3 -m doctest mydoctest.rst); done
答案 1 :(得分:1)
这应该有效
for d in *; do (cd "$d" ; python3 -m doctest mydoctest.rst); done