如何在循环中按某种顺序调用文件



我正在研究一个shell脚本,它应该以某种定义的顺序运行python测试。这是外壳脚本:

files_array=()
for entry in tests/*.py
do
files_array+=($entry)
echo $files_array
done
cd tests/
./script -p create_01.yml
export FILE_PATH='../books/create_01.yml'
python3 -m unittest test test_create_01.py
./script -p update_02.yml
export FILE_PATH='../books/update_02.yml'
python3 -m unittest test test_update_02.py
./script -p delete_03.yml
export FILE_PATH='../books/delete_03.yml'
python3 -m unittest test test_delete_03.py

"tests"文件夹包含3个测试文件:test_create_01.pytest_update_02.pytest_delete_03.py

我将三个文件名放在变量数组中files_array.如何使用这个数组在一个块而不是 3 个块中调用所有三个文件? 我还想按某种顺序呼叫他们:首先呼叫test_create_01.py,然后test_update_02.py然后呼叫最后一个test_delete_03.py

你甚至不需要创建一个数组。你可以这样做:

cd tests/
for entry in test_create_01.py test_update_02.py test_delete_03.py; do
echo "now processing $entry"
s="${entry#test_}"
s="${s%.py}"
./script -p "$s.yml"
export FILE_PATH="../books/$s.yml"
python3 -m unittest test "entry"
done

最新更新