私は大量の学生のPythonプロジェクトをテストしています。私は別のファイル、例えばmydoctest.rst
と呼ばれるファイルにdoctestを作成しました。bash forループを使用してサブディレクトリにある別のファイルからPython doctestを実行する
doctestの輸入の学生のプロジェクトのモジュールの最初の行:
:私は学生のプロジェクトと同じディレクトリからそれを呼び出すときdoctestのが正常に動作
プロジェクト3インポートのfunctionnameから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
を実行する前に、最初に各サブディレクトリにcdする方法はありますか?私の現在の回避策(これは満足できません)は次のとおりです。 for d * cd "$ d"を実行します。 python3 -m doctest mydoctest.rst; CD ..;
';'と '&&'を使う違いは何ですか?彼らは同じことをするようです。 – egunawan
&&は新しいスレッド(ただし同じ環境)の後でコマンドを起動し、起動前にコマンドが完了するという保証はありません。 「CD」のような小さなものでは、これは時間内に完了している可能性があります。 – user2381984
私はあなたが '&'. ;について話していると思いますが、それは最初にコマンドを実行します。その後のコマンド。 &彼らはお互いを待つことなくすぐに両方を行います。 &&は論理演算子で、最初のコマンドを評価し、falseの場合は式全体が偽であることを知るので、2番目のコマンドは評価されません。最初のコマンドが真であれば、それも真であるかどうかを見るために2番目のコマンドを評価します。 – 00prometheus