linux - 编写一个接受持续时间作为参数的 bash 脚本?

标签 linux bash time duration

我正在寻找可以解析持续时间的 bash 脚本。

如果给出三个参数,它们代表小时、分钟和秒。如果给出两个参数,它们表示分钟和秒,小时为零。

最佳答案

以下情况如何:

#!/bin/bash

h=0
if [ "$#" -ge 3 ]
then
   h=$1
   shift
fi
sec=$((3600*$h+60*$1+$2))

echo "The total number of seconds is $sec"

由于问题没有指定您打算用给定时间做什么,程序会计算总秒数。此外,检查是否至少给出了两个参数可能很有用。

脚本使用 shift操作,移位使得 $1 := $2; $2 := $3,等等。换句话说,第一个参数被处理,然后你“假装”它不存在。

默认情况下,您将h设置为零,只有当参数的数量大于或等于3时,它才会设置h.

关于linux - 编写一个接受持续时间作为参数的 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662450/

相关文章:

linux - Shell脚本在特定时间杀死进程,输入进程名称和时间

python - Pygame time.clock() 奇怪的行为

SQL如何按时间段分组

linux - 当我使用 "cd//"时,linux bash 中发生了什么?

regex - 如何使用文件动态指定模式并根据该目录中的模式获取文件?

xml - 在 shell 中为 txt.txt 文件的每行创建新的文本文件

perl - 是否有用于将秒数转换为英语的 CPAN 模块?

linux - 重命名文件的shell脚本

复制稀疏文件

linux - 我的脚本中的命令别名