Tim*_*Tim 2 linux bash command-line macos
我在超级用户这里找到了以下不错的倒计时脚本,我可以将其包含在我的 .bash_profile 中:
function countdown(){
date1=$((`date +%s` + $1));
while [ "$date1" -ne `date +%s` ]; do
echo -ne "$(date -u --date @$(($date1 - `date +%s`)) +%H:%M:%S)\r";
sleep 0.1
done
}
Run Code Online (Sandbox Code Playgroud)
据我所知,由于命令的差异,它在 OSX 上不起作用date
。另一位用户这样评论,但该问题仍然没有解决。
同样的问题(我认为)也在这里讨论和解决,但我无法弄清楚如何修改倒计时脚本以利用此解决方案。
就我个人而言,我会对其进行一些重构以提高可读性(仍然依赖于 GNU 日期)
function countdown(){
local now=$(date +%s)
local end=$((now + $1))
while (( now < end )); do
printf "%s\r" "$(date -u -d @$((end - now)) +%T)"
sleep 0.25
now=$(date +%s)
done
echo
}
Run Code Online (Sandbox Code Playgroud)
将日期调用映射到 OSX 的 BSD 日期(此处为手册页)
它看起来像 GNU 日期调用
date -u -d @$((end - now)) +%T
Run Code Online (Sandbox Code Playgroud)
转换为此 BSD 日期调用
date -u -j -f %s $((end - now)) +%T
Run Code Online (Sandbox Code Playgroud)
但这是未经测试的。
归档时间: |
|
查看次数: |
5594 次 |
最近记录: |