写一个shell脚本,循环100次执行同一个命令,并统计执行状态与平均耗时。
时间: 2023-09-15 22:05:34 浏览: 66
### 回答1:
可以使用以下的Shell脚本来循环100次执行同一个命令,并统计执行状态和平均耗时:
```bash
#!/bin/bash
# 初始化变量
total_time=0
success_count=0
failure_count=0
# 循环执行命令100次
for i in {1..100}
do
start=$(date +%s.%N)
# 执行命令,并判断执行状态
if 命令; then
end=$(date +%s.%N)
success_count=$((success_count+1))
echo "第 $i 次执行成功,耗时: $(echo "$end - $start" | bc) 秒"
total_time=$(echo "$total_time + $end - $start" | bc)
else
failure_count=$((failure_count+1))
echo "第 $i 次执行失败"
fi
done
# 输出执行结果
echo "执行完成,成功执行 $success_count 次,失败 $failure_count 次。"
if ((success_count > 0)); then
avg_time=$(echo "scale=2; $total_time / $success_count" | bc)
echo "平均耗时: $avg_time 秒"
fi
```
需要将其中的"命令"替换为需要执行的实际命令。脚本会统计执行成功次数、失败次数、总耗时和平均耗时,并在执行完毕后输出这些统计信息。
### 回答2:
可以编写一个shell脚本如下:
#!/bin/bash
# 初始化执行状态和总耗时
count=0
total_time=0
# 循环执行100次
for ((i=1; i<=100; i++))
do
start_time=$(date +%s%N) # 获取开始时间,精确到纳秒
# 在这里替换你要执行的命令
your_command
end_time=$(date +%s%N) # 获取结束时间,精确到纳秒
# 计算执行耗时,单位为秒
elapsed_time=$(echo "scale=6; ($end_time - $start_time) / 1000000000" | bc)
# 累计总耗时和执行次数
total_time=$(echo "scale=6; $total_time + $elapsed_time" | bc)
count=$((count+1))
# 在这里可以判断执行状态并进行相应操作
# ...
echo "第 $i 次执行耗时: $elapsed_time 秒"
done
# 计算平均耗时
average_time=$(echo "scale=6; $total_time / $count" | bc)
echo "执行 $count 次,平均耗时: $average_time 秒"
这个脚本会循环执行一个命令100次,并统计每次执行的耗时。你只需要将"your_command"替换成你要执行的命令即可。另外,你可以在循环内部添加适当的判断语句,以判断每次执行的状态,例如成功或失败,并进行相应的操作。最后,脚本会输出执行的次数和平均耗时。
### 回答3:
写一个shell脚本,循环100次执行同一个命令,并统计执行状态与平均耗时可以通过以下方式实现:
```shell
#!/bin/bash
total_time=0
success_count=0
failure_count=0
for ((i=1; i<=100; i++))
do
start_time=$(date +%s.%N) # 记录开始时间
# 执行你的命令
your_command
exit_status=$? # 获取命令执行的返回状态
end_time=$(date +%s.%N) # 记录结束时间
execution_time=$(echo "$end_time - $start_time" | bc) # 计算命令执行时间
total_time=$(echo "$total_time + $execution_time" | bc) # 累加执行时间
if [ $exit_status -eq 0 ]; then
success_count=$((success_count+1))
else
failure_count=$((failure_count+1))
fi
done
avg_time=$(echo "scale=2; $total_time / 100" | bc) # 计算平均耗时
echo "成功执行次数:$success_count"
echo "失败执行次数:$failure_count"
echo "平均耗时:$avg_time 秒"
```
上述脚本中,循环100次执行了一个名为`your_command`的命令,并根据命令的返回状态记录成功和失败次数。每次执行记录了开始时间和结束时间,并通过`bc`命令计算了执行时间和总执行时间。最后,通过除以100计算了平均耗时,并输出了执行状态次数和平均耗时。