如何在 Automator 中使用变量

How to use Variables in Automator

请多多包涵,我用Automator没多久

我在 PHP(完全不同)和一些小的脚本知识(苹果脚本、shell 等)方面有很好的经验。

我尝试用 Automator 复制这个逻辑工作流程:

  1. 要求用户插入值(设置 $variable_a)
  2. 要求用户再插入一个值(设置 $variable_b)
  3. 提交
  4. 这会触发一个使用上面提交的两个值的脚本。一个虚拟的例子:

    回声$variable_a echo variable_b

看起来很简单,而且使用 Automator 设置此逻辑的速度之快令人惊讶。

问题是,在上面的第2阶段,我的$variable_a突然变成了$variable_a$variable_b的混合值。

为什么会这样?

它们似乎并不像我理解的 "variables" 在任何语言或编程步骤中的一般用法那样起作用。 在其他系统中,通常,变量会保留它们定义的值(除非可变变量或您在代码中有意识地修改它们)

我附加了一个 Automator "WorkFlow" File,它完全复制了上述工作流逻辑。 这是一个 ZIP 文件,解压并在 Automator 中打开进行测试。

您将看到(在最后一步的结果部分)这些值是如何变成(恕我直言)假的。

有人提示吗?

发生这种情况的原因是工作流中一个操作的输出被作为输入提供给工作流的下一个操作。由于输入是由动作接收的,因此在某些情况下它们也可以聚合,例如设置和获取变量时。

这样做的原因是您可以将多个变量直接发送到 运行 Shell Script 操作中,并引用它们使用 </code>、<code> 等。如果 Automator 只接受最近的输入,您将永远无法将多个变量输入 shell 脚本,而无需先手动将它们组合到列表中。

解决方法很简单。每个操作都有一个 Options 按钮,您可以按下该按钮,然后会显示一个名为 Ignore this action's input 的复选框。这需要检查您想要独立于以前的结果进行操作的那些操作。

这是您的工作流程的屏幕截图,其中针对需要它的操作勾选了相应的复选框: