女士的迄今为止的格式?

女士的迄今为止的格式?

不确定如何描述这一点,但想简化这一点......

declare -i seconds=0
seconds=$(mediainfo --Inform="General;%Duration%" "$1")/1000
eval "echo $(date -ud "@$seconds" +'%l:%M')"

我无法在没有先声明的情况下将返回毫秒除以 1000,但我能否以某种方式将前两行全部放入“@$seconds”中?

答案1

你没有展示整个脚本,但我认为你真的不需要evalecho最后一行。你可以使用bash算术表达式 $((…))如下:

date -ud "@$(($(mediainfo --Inform="General;%Duration%" "$1")/1000))" +%l:%M

因为%l“小时,空格填充(1..12)”%l:%M给出了错误的输出,对于带有00:56:40它的电影来说12:56。也许你想要一些不同的东西,但我从未见过在持续时间上使用 12 小时格式——如果你想要以 HH:MM 格式显示文件的持续时间,并用空格填充小时,那么就可以了+%_H:%M

$ date -ud@"$(($(mediainfo --Inform="General;%Duration%" /path/to/file)/1000))" +%_H:%M
 0:56

进一步阅读

相关内容