Mac OS 上 Automator 应用程序(.app)的百分比进度 [重复]
Posted
技术标签:
【中文标题】Mac OS 上 Automator 应用程序(.app)的百分比进度 [重复]【英文标题】:Percentage progress on Automator application(.app) on Mac OS [duplicate] 【发布时间】:2019-11-20 00:52:28 【问题描述】:我使用 Automator Application 来创建应用程序(.app 通过双击运行)。它运行一个一个执行命令的命令。每个命令需要 2-3 分钟。我想要实现的是在完成每个命令后显示百分比进度。
在上图中,百分比始终为零。我想在完成每个命令后明确设置进度。我也知道这可以使用 AppleScript 但我想在 bash 脚本中实现。
【问题讨论】:
如果它只是一个“运行 Shell 脚本”操作并且该 shell 脚本包含多个命令,我认为你做不到。完成百分比是完成的操作的百分比。如果您可以跨多个“运行 Shell 脚本”操作将您的 shell 脚本拆分为多个脚本,那么完成百分比将在它们完成时更新。 @tzs 我只想展示进度。我认为可以使用 Automator 抛出我在苹果文档上找到了 automator 脚本示例,但这也没有显示进度。当然,如果我们有 10 个命令并且其中 4 个已完成,我们应该能够显示 40% 已完成。 【参考方案1】:我为我的一个脚本做过一次:
progress()
set -- "$@" "$((100*$1/$2))" "$(($1 == 0 ? -1 : SECONDS*($2-$1)/$1))"
printf "%d of %d (%d%%) eta %s sec" "$@"
你传递给它 2 个参数:
-
您正在处理的事物的当前编号,
您正在处理的事物总数
您的脚本将如下所示:
#!/bin/bash
progress()
set -- "$@" "$((100*$1/$2))" "$(($1 == 0 ? -1 : SECONDS*($2-$1)/$1))"
printf "%d of %d (%d%%) eta %s sec" "$@"
n=10 # you need to hardcode this, the total number of commands to run
i=0
command_01; progress $((++i)) $n
command_02; progress $((++i)) $n
command_03; progress $((++i)) $n
command_04; progress $((++i)) $n
command_05; progress $((++i)) $n
command_06; progress $((++i)) $n
command_07; progress $((++i)) $n
command_08; progress $((++i)) $n
command_09; progress $((++i)) $n
command_10; progress $((++i)) $n
printf "\nThat took %d sec\n" $SECONDS
【讨论】:
感谢您的回复,但是当我从终端运行 bash 脚本时,这一切正常。但是我已经从 Automator 创建了应用程序(.app),当你双击它时它就会运行。因此,为了了解它的进度,我只能在菜单栏上显示它的百分比,如上图所示。以上是关于Mac OS 上 Automator 应用程序(.app)的百分比进度 [重复]的主要内容,如果未能解决你的问题,请参考以下文章