#!/bin/bash # 设置输入和输出目录 in_dir="in" bin_dir="build" out_dir="out" lib_dir="lib" rm -rf out # 清空 echo "" > time.txt # 确保输出目录存在 mkdir -p "$out_dir" # 设置动态链接库路径 export LD_LIBRARY_PATH=./$lib_dir:$LD_LIBRARY_PATH # 遍历build目录下的所有文件 for file in "$bin_dir"/*; do # 检查文件是否存在 if [ -f "$file" ]; then # 获取文件名(不含路径) filename=$(basename -- "$file") # 移除文件扩展名,假设输出的可执行文件不需要扩展名 basename="${filename%.*}" # 记录开始运行的文件 echo "$file begin to run" >> time.txt # 检查对应的输入文件是否存在 if [ -f "$in_dir/$basename.in" ]; then # 如果输入文件存在,正常重定向输入输出 "$file" < "$in_dir/$basename.in" > "$out_dir/$basename.out" 2>> time.txt else # 如果输入文件不存在,执行文件但不重定向输入 "$file" > "$out_dir/$basename.out" 2>> time.txt fi # 捕获上一个命令的返回值 exit_code=$? # 将返回值追加到输出文件的末尾 echo "$exit_code" >> "$out_dir/$basename.out" # 分隔符,用于区分不同的运行结果 echo "---------- ---------- ---------- ----------" >> time.txt fi done