https://blog.csdn.net/matchbox1234/article/details/106646331/
你的这个脚本 能不能帮我把天数也算出来呢
就比如说 程序已运行 11天10小时5分钟20秒 这样 多个天数显示的
上面写的就是公式啊
#!/bin/bash
seconds=3721
hour=$(( $seconds/3600 ))
min=$(( ($seconds-${hour}*3600)/60 ))
sec=$(( $seconds-${hour}*3600-${min}*60 ))
引用chatgpt内容作答:
给你写一个bash脚本来显示一个进程已经运行的天数、小时、分钟和秒数:
#!/bin/bash
# 获取进程ID,这里假设是1234
pid=1234
# 获取进程启动时间
start_time=$(ps -p $pid -o lstart=)
# 计算当前时间
now=$(date +%s)
# 计算运行时间(秒)
runtime=$((now-start_time))
# 转换为天数
days=$((runtime/86400))
runtime=$((runtime%86400))
# 转换为小时数
hours=$((runtime/3600))
runtime=$((runtime%3600))
# 转换为分钟数
mins=$((runtime/60))
# 获取秒数
secs=$((runtime%60))
# 打印结果
echo "进程$pid已经运行了 $days天 $hours小时 $mins分钟 $secs秒"
这个脚本首先获取进程ID和启动时间,然后计算当前时间和运行时间(秒数)。通过整除和求余运算转换为天数、小时数、分钟数和秒数,最后打印出来。
你可以根据需要修改和扩展这个脚本,比如显示进程名称等。
#!/bin/bash
seconds=3721
day=$(( $seconds/86400 ))
seconds= $seconds-${day}*86400
hour=$(( $seconds/3600 ))
min=$(( ($seconds-${hour}*3600)/60 ))
sec=$(( $seconds-${hour}*3600-${min}*60 ))
HMS=`echo ${day}天${hour}小时${min}分钟${sec}秒`
echo $HMS
#!/bin/bash
uptime_seconds=$(cut -d " " -f 1 /proc/uptime)
days=$((uptime_seconds / 86400))
hours=$((uptime_seconds / 3600 % 24))
minutes=$((uptime_seconds / 60 % 60))
seconds=$((uptime_seconds % 60))
echo "程序已运行 $days 天 $hours 小时 $minutes 分钟 $seconds 秒"
参考gpt:
结合自己分析给你如下建议:
在脚本中导入datetime模块,用来处理时间相关的计算。
在脚本中定义一个函数,用来将秒数转换为天时分秒的格式。例如:
import datetime
def format_time(seconds):
# 创建一个timedelta对象,表示给定的秒数
delta = datetime.timedelta(seconds=seconds)
# 获取天数,小时数,分钟数和秒数
days = delta.days
hours, remainder = divmod(delta.seconds, 3600)
minutes, seconds = divmod(remainder, 60)
# 返回一个格式化的字符串
return f"{days}天{hours}小时{minutes}分钟{seconds}秒"
在脚本中调用该函数,将程序运行时间转换为天时分秒的格式,并打印出来。例如:
import time
start_time = time.time()
# 假设这里是程序部分
time.sleep(10)
end_time = time.time()
run_time = end_time - start_time
print(f"程序已运行 {format_time(run_time)}")
#!/bin/bash
# 获取进程ID,这里假设是1234
pid=1234
# 获取进程启动时间
start_time=$(ps -p $pid -o lstart=)
# 计算当前时间
now=$(date +%s)
# 计算运行时间(秒)
runtime=$((now-start_time))
# 转换为天数
days=$((runtime/86400))
runtime=$((runtime%86400))
# 转换为小时数
hours=$((runtime/3600))
runtime=$((runtime%3600))
# 转换为分钟数
mins=$((runtime/60))
# 获取秒数
secs=$((runtime%60))
# 打印结果
echo "进程$pid已经运行了 $days天 $hours小时 $mins分钟 $secs秒"
【以下回答由 GPT 生成】
我很抱歉,但是你提供的问题并不是一个具体的技术问题,而是一个请求优化问题描述的请求。我无法提供直接的代码解答。我建议你提供更具体的问题或场景,这样我才能给出更精确的解决方案。如果你有任何其他的技术问题需要帮助,请随时提问。