Mac OS上Automator应用程序(.app)的进度百分比

时间:2019-07-10 11:39:40

标签: bash macos shell git-bash automator

我已经使用 Automator Application 创建了应用程序( .app ,该应用程序通过双击运行)。它运行的命令逐个执行命令。每个命令需要2-3分钟。我要实现的是在完成每个命令后显示进度百分比。

enter image description here

在以上图像中,百分比始终为零。我想在完成每个命令后显式设置进度。我也知道使用 AppleScript 可以实现,但是我想在bash脚本中实现。

1 个答案:

答案 0 :(得分:0)

我为我的脚本做了一次

progress() {
  set -- "$@" "$((100*$1/$2))" "$(($1 == 0 ? -1 : SECONDS*($2-$1)/$1))"
  printf "%d of %d (%d%%) eta %s sec" "$@"
}

您为其传递了2个参数:

  1. 您正在处理的事物的当前数量,
  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