You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本加班计算求助:如何将差值计算结果输出至文本文件

嘿,我来帮你搞定这个加班时长计算的Shell脚本问题!咱们一步一步来实现你想要的功能:

加班时长计算Shell脚本实现

首先明确你的需求:获取两个输入数值,判断是否超过800(对应8小时),如果超过就把差值输出到文本文件。下面是具体的实现方案:

核心步骤拆解

  • 获取用户输入:用read命令让用户输入两个时长数值
  • 阈值判断与差值计算:用Shell的整数运算判断数值是否超标,算出加班时长
  • 结果写入文件:通过输出重定向把结果保存到指定文本文件

完整可运行脚本

#!/bin/bash

# 提示用户输入两个时长数值
echo "请输入第一个时长数值:"
read time1
echo "请输入第二个时长数值:"
read time2

# 设定阈值(你说的800对应8小时)
threshold=800

# 处理第一个输入值
if (( time1 > threshold )); then
    overtime=$(( time1 - threshold ))
    # 把结果追加到文件末尾,用>会覆盖原有内容
    echo "第一个数值的加班时长:$overtime" >> overtime_record.txt
    echo "第一个数值的加班时长已写入overtime_record.txt"
else
    echo "第一个数值未超过阈值,无加班时长"
fi

# 处理第二个输入值
if (( time2 > threshold )); then
    overtime=$(( time2 - threshold ))
    echo "第二个数值的加班时长:$overtime" >> overtime_record.txt
    echo "第二个数值的加班时长已写入overtime_record.txt"
else
    echo "第二个数值未超过阈值,无加班时长"
fi

关键细节说明

  1. 整数运算与判断:用(( ))语法处理整数的比较和计算,这是Shell里最直观的整数操作方式,避免了很多语法坑。
  2. 文件写入方式:
    • >> filename:追加内容到文件末尾,适合多次运行脚本累计记录
    • > filename:覆盖文件原有内容,适合每次运行只保留最新结果
  3. 脚本执行权限:写完脚本后,记得给它加执行权限:chmod +x overtime_calc.sh,之后直接运行./overtime_calc.sh就能用了。

扩展:如果需要处理浮点数时长

如果你的输入值是带小数的(比如8.5小时对应850?或者直接是小数),可以用bc命令来处理浮点数计算,示例代码如下:

#!/bin/bash

echo "请输入第一个时长数值(支持小数):"
read time1
echo "请输入第二个时长数值(支持小数):"
read time2

threshold=800.0

# 处理第一个浮点数输入
if (( $(echo "$time1 > $threshold" | bc -l) )); then
    overtime=$(echo "$time1 - $threshold" | bc -l)
    echo "第一个数值的加班时长:$overtime" >> overtime_record.txt
    echo "第一个数值的加班时长已写入文件"
else
    echo "第一个数值未超过阈值"
fi

这样就能完美满足你的需求啦!

内容的提问来源于stack exchange,提问作者peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:39:24