如何通过在提供的Run_Command中添加文件名来运行目录中的每个文件



我在以下目录/home/vs/vs_work2/Miss.Chim_DEPB中有一堆.sv文件,我想用上述目录中的每个文件名运行以下命令

make sim TB=depb/sim/utb/epb_uvm_tb.json TC= **USE_FILE_NAME_From_ABOVE_Directory** 

并将运行后每个文件的结果与运行时使用的文件名一起保存到一个单独的文件中。

这就是我尝试过的

#!/bin/bash
FILES=/home/vs/vs_work2/Miss.Chim_DEPB/*.sv
NUM_OF_FILES= ls /home/vs/vs_work2/Miss.Chim_DEPB/*.sv | wc -l   # this will lst number of files in that directory
declare -a vendec[NUM_OF_FILES]  # declared array "-a" is used for index array
arraylength=${#vendec[@]}

for f in $FILES
do
#echo -n "" > vendec[*].txt  #to empty file

vendec[i]

echo "$f" >> vendec.txt


done

您可以运行以下一个行:

ls /home/vs/vs_work2/Miss.Chim_DEPB/*.sv | xargs -I {} bash -c "make sim TB=depb/sim/utb/epb_uvm_tb.json TC={} && echo {} >> vendec.txt"

它将列出/home/vs/vs_work2/Miss.Chim_DEPB/中的所有.sv文件,然后,对于每个文件,它将运行make sim TB=depb/sim/utb/epb_uvm_tb.json TC={}命令,并将{}占位符替换为目录中的文件,如果成功,它将在vendec.txt文件的末尾写入文件名。

请注意,可以使用xargs-P选项并行运行多个make sim ....命令。

相关内容

  • 没有找到相关文章

最新更新