#!/bin/bash ########################################################################## # File Name : test.sh # Encoding : utf-8 # Author : We-unite # Email : weunite1848@gmail.com # Created Time : 2023-10-06 ########################################################################## # 写一个脚本,测试已经生成的main的功能 # 输入年份为自1976年至2076年的任意年份 # 如果未出现段错误就重定向输出到res.txt,否则输出到err.txt,并在屏幕上显示出错的年份 # 设置要测试的可执行文件 executable="main" # 清空res.txt和err.txt echo "" > res.txt # 循环测试年份,计算总用时为多少秒 start_time=$(date +%s) for year in {1900..2100}; do echo "==================测试年份 $year=====================" # 执行可执行文件,并捕获标准输出和标准错误 output=$(./$executable "$year" 2>&1) # 获取命令的退出状态码 exit_code=$? if [ $exit_code -eq 0 ]; then # 执行正常,将输出重定向到res.txt echo -e "$year:\n$output" >> res.txt # echo "执行正常" else # 执行异常,将错误信息重定向到err.txt echo -e "$year:\n$output" >> err.txt echo "执行异常(退出码: $exit_code)" # 停止执行 exit 1 fi done end_time=$(date +%s) echo "测试成功!" echo "总用时:$((end_time - start_time))秒"