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
关键细节说明
- 整数运算与判断:用
(( ))语法处理整数的比较和计算,这是Shell里最直观的整数操作方式,避免了很多语法坑。 - 文件写入方式:
>> filename:追加内容到文件末尾,适合多次运行脚本累计记录> filename:覆盖文件原有内容,适合每次运行只保留最新结果
- 脚本执行权限:写完脚本后,记得给它加执行权限:
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
相关产品推荐
相关产品推荐

